资源描述:
《oracle分区表(partitionedtable)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Oracle分区表(partitionedtable)管理分区表和索引一、什么是分区表现在的数据库,单个表的数据量可能很大,达到几百个G和几T的程度,这时侯,你需要使用分区表和分区索引来管理数据,它将一个大的多分为块,称为分区(patitions),甚至子分区(subpartition)。每一个分区都保存在自已的段中,可以单独的管理。分区可以结合并行执行和合理的数据分布来提高系统的可用性和性能。●减少数据中断的可能性●可以单独备份或恢复每一个分区●控制分区的分布(平衡I/O负荷)●提高可管理性,可用
2、性和性能二、表分区的方法1.range使用表的字段的值的范围来进行分区,它特别适用于数据有逻辑范围的表。如一年中的月。当数据在范围内均匀分布时性能最好。createtablesalse(invoice_nonumber,saleyearintnotnull,salemonthintnotnull,sale_dayintnotnull)partionbyrange(saleyea,sale_month,sale_day)(partitionsale_q1valuelessthan(1999,04,01
3、)tablespacetsapartitionsale_q2valuelessthan(2000,04,01)tablespacetsbpartitionsale_q2valuelessthan(maxvalue)tablespacetsc);--最大值maxvalue可以指定enablerowmovement来设置当分区列的值被修改时,将行移动到不同的分区。2.hash当数据不容易使用range分区,但你又需要使用分区来提高性能和可管理性,hash分区方法,根据分区值(partitioningke
4、y)的hash值来确定分区。createtablescubagear(idnumber,namevarchar2(60))partitionbyhash(id)partitions4storein(gear1,gear2,gear3,gear4);3.list当你需要控制行怎么映射至分区时,使用list分区方法,你可以将分区列的值指定到分区中。createtableq1_sale_by_region(dept_nonumber,dept_namevarchar2(20),quarterly_sale
5、snumber(10,2),statevarchar2(2))partitionbylist(state)Oracle分区表(partitionedtable)管理分区表和索引一、什么是分区表现在的数据库,单个表的数据量可能很大,达到几百个G和几T的程度,这时侯,你需要使用分区表和分区索引来管理数据,它将一个大的多分为块,称为分区(patitions),甚至子分区(subpartition)。每一个分区都保存在自已的段中,可以单独的管理。分区可以结合并行执行和合理的数据分布来提高系统的可用性和性能。
6、●减少数据中断的可能性●可以单独备份或恢复每一个分区●控制分区的分布(平衡I/O负荷)●提高可管理性,可用性和性能二、表分区的方法1.range使用表的字段的值的范围来进行分区,它特别适用于数据有逻辑范围的表。如一年中的月。当数据在范围内均匀分布时性能最好。createtablesalse(invoice_nonumber,saleyearintnotnull,salemonthintnotnull,sale_dayintnotnull)partionbyrange(saleyea,sale_mon
7、th,sale_day)(partitionsale_q1valuelessthan(1999,04,01)tablespacetsapartitionsale_q2valuelessthan(2000,04,01)tablespacetsbpartitionsale_q2valuelessthan(maxvalue)tablespacetsc);--最大值maxvalue可以指定enablerowmovement来设置当分区列的值被修改时,将行移动到不同的分区。2.hash当数据不容易使用rang
8、e分区,但你又需要使用分区来提高性能和可管理性,hash分区方法,根据分区值(partitioningkey)的hash值来确定分区。createtablescubagear(idnumber,namevarchar2(60))partitionbyhash(id)partitions4storein(gear1,gear2,gear3,gear4);3.list当你需要控制行怎么映射至分区时,使用list分区方法,你可以将分区列的值指定到分区中。createtabl