资源描述:
《Oracle分区表总结》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Oracle分区表总结在ORACLE里如果遇到特别大的表,可以使用分区的表来改变其应用程序的性能。同事的分区表总结,转载一下。1.1分区表PARTITIONtable在ORACLE里如果遇到特别大的表,可以使用分区的表来改变其应用程序的性能。1.1.1分区表的建立:某公司的每年产生巨大的销售记录,DBA向公司建议每季度的数据放在一个分区内,以下示范的是该公司1999年的数据(假设每月产生30M的数据),操作如下:范围(rangepartitionedtable)分区表:CREATETABLEsales(invoice_noNUMBER,...sale_dateDATENOTNU
2、LL)PARTITIONBYRANGE(sale_date)(PARTITIONsales1999_q1VALUESLESSTHAN(TO_DATE(‘1999-04-01’,’YYYY-MM-DD’)TABLESPACEts_sale1999q1,PARTITIONsales1999_q2VALUESLESSTHAN(TO_DATE(‘1999-07-01’,’YYYY-MM-DD’)TABLESPACEts_sale1999q2,PARTITIONsales1999_q3VALUESLESSTHAN(TO_DATE(‘1999-10-01’,’YYYY-MM-DD’)TAB
3、LESPACEts_sale1999q3,PARTITIONsales1999_q4VALUESLESSTHAN(TO_DATE(‘2000-01-01’,’YYYY-MM-DD’)TABLESPACEts_sale1999q4);--valueslessthan(maxvalue)/*余下的未选择日期都归于该分区列表(listpartitioning)分区表:createtableemp(empnonumber(4),enamevarchar2(30),locationvarchar2(30))partitionbylist(location)(partitionp1valu
4、es('北京'),partitionp2values('上海','天津','重庆'),partitionp3values('广东','福建')partitionp0values(default)/*值列表中未显示列出的所有值都会放到这个default分区中,关于default的使用,有一点要注意:一旦列表分区表有一个default分区,就不能再向这个表中增加更多的分区了,此时必须删除default分区,然后增加新分区,再加回default分区。);哈希(hashpartitioning)分区:散列分区数应该是2的幂,从而利于各行平均的散列与各分区createtableemp(e
5、mpnonumber(4),enamevarchar2(30),salnumber)partitionbyhash(empno)partitions8storein(emp1,emp2,emp3,emp4,emp5,emp6,emp7,emp8);组合分区:范围哈希组合分区:createtableemp(empnonumber(4),enamevarchar2(30),hiredatedate)partitionbyrange(hiredate)subpartitionbyhash(empno)subpartitions2(partitione1valueslessthan(t
6、o_date('20020501','YYYYMMDD')),partitione2valueslessthan(to_date('20021001','YYYYMMDD')),partitione3valueslessthan(maxvalue));范围列表组合分区(compositepartitioning):在组合分区中,顶层分区机制总是区间分区,第二级分区机制可能是列表分区或者散列分区,使用组合分区时,并没有分区段,只有子分区段,分区本身并没有段(这就类似于分区表没有段),数据物理的存储在子分区段上,分区成为一个逻辑容器,或者指向实际子分区的容器。每个区间分区不需要有相
7、同数目的子分区。CREATETABLEcustomers_part(customer_idNUMBER(6),cust_first_nameVARCHAR2(20),cust_last_nameVARCHAR2(20),nls_territoryVARCHAR2(30),credit_limitNUMBER(9,2))PARTITIONBYRANGE(credit_limit)SUBPARTITIONBYLIST(nls_territory)SUBPARTITIONTEMPLATE(SUBP