您好,欢迎访问三七文档
Oracle分区表Oracle大对象处理●Oracle8i以后推出了分区选项。分区将表分离在若于不同的表空间上,用分而治之的方法来支撑无限膨胀的大表,增强大表在物理一级的可管理性。将大表分割成较小的分区可以改善表的维护、备份、恢复、事务及查询性能。Oracle分区表◆增强可用性:如果表的一个分区由于系统故障而不能使用,表的其余好的分区仍可以使用。◆减少关闭时间:如果系统故障只影响表的一部份分区,那么只有这部份分区需要修复,可能比整个大表修复花的时间更少。Oracle分区表◆改善性能:对大表的查询、增加、修改等操作可以分解到表的不同分区来并行执行,可使运行速度更快。◆分区对用户透明,最终用户感觉不到分区的存在。Oracle分区表◆范围分区◆散列分区◆列表分区◆组合分区Oracle分区表◆范围分区(Range分区)Range分区是应用范围比较广的表分区方式,它是以列的值的范围来做为分区的划分条件,将记录存放到列值所在的range分区中。Oracle分区表CREATETABLEdemo_range(IDNUMBERPRIMARYKEY,CODEVARCHAR2(20),RANGE_DATEDATE)PARTITIONBYRANGE(RANGE_DATE)(PARTITIONPART01VALUESLESSTHAN(to_date('2009-2-1','yyyy-MM-dd'))TABLESPACEtsp_jn,PARTITIONpart02VALUESLESSTHAN(to_date('2009-3-1','yyyy-MM-dd'))TABLESPACEtsp_zb,PARTITIONpart03VALUESLESSTHAN(maxvalue)TABLESPACEtsp_ta)Oracle分区表◆列表分区(List分区)该分区需要明确指定列的值,通过明确指定分区值,能控制记录存储在哪个分区。一旦插入的列值不在分区范围内,则插入/更新就会失败。它的单个分区对应值可以是多个。Oracle分区表CREATETABLEdemo_list(IDNUMBERPRIMARYKEY,CODEVARCHAR2(30),AREAVARCHAR2(4))PARTITIONBYLIST(AREA)(PARTITIONPART1VALUES('1000')TABLESPACEtsp_jn,PARTITIONPART2VALUES('2000')TABLESPACEtsp_zb,PARTITIONPART2VALUES('2000')TABLESPACEtsp_jni)Oracle分区表◆散列分区(Hash分区)对于那些无法有效划分范围的表,可以使用hash分区,这样对于提高性能还是会有一定的帮助。hash分区会将表中的数据平均分配到你指定的几个分区中,列所在分区是依据分区列的hash值自动分配。Oracle分区表CREATETABLEdemo_hash(IDNUMBERPRIMARYKEY,CODEVARCHAR2(20),HASH_DATEDATE)PARTITIONBYHASH(HASH_DATE)(PARTITIONPART1TABLESPACEtsp_jn,PARTITIONPART2TABLESPACEtsp_zb,PARTITIONPART2TABLESPACEtsp_jni)Oracle分区表◆组合分区如果某表按照某列分区之后,仍然较大,或者是一些其它的需求,还可以通过分区内再建子分区的方式将分区再分区,即组合分区的方式。如:range-hash,range-listOracle分区表◆全局分区索引createINDEXindex_demo_rangeondemo_range(range_date)globalpartitionbyrange(range_date)(partitionidx_1valueslessthan(to_date('2009-2-1','yyyy-MM-dd'))tablespacetsp_jn,partitionidx_2valueslessthan(to_date('2009-3-1','yyyy-MM-dd'))tablespacetsp_zb,partitionidx_3valueslessthan(maxvalue)tablespacetsp_jni)Oracle分区表◆局部分区索引createindexind_stu_addressonstudent(address)local(partitionpart_student_jn,partitionpart_student_jni,partitionpart_student_ta,partitionpart_student_wf,partitionpart_student_zb)Oracle分区表◆Oracle大对象Blob:二进制lob,为二进制数据,最长可达4GB,存贮在数据库中。Clob:字符lob,字符数据,最长可以达到4GB,存贮在数据库中。Bfile:二进制文件;存贮在数据库之外的只读型二进制数据。Nclob:支持对字节字符集合(nultibytecharacterset)的一个clob列。Oracle大对象结束
本文标题:oracle表分区
链接地址:https://www.777doc.com/doc-3375574 .html