Oracle分区表(partitionedtable)

Oracle分区表(partitionedtable)管理分区表和索引一、什么是分区表现在的数据库,单个表的数据量可能很大,达到几百个G和几T的程度,这时侯,你需要使用分区表和分区索引来管理数据,它将一个大的多分为块,称为分区(patitions),甚至子分区(subpartition)。每一个分区都保存在自已的段中,可以单独的管理。分区可以结合并行执行和合理的数据分布来提高系统的可用性和性能。●减少数据中断的可能性●可以单独备份或恢复每一个分区●控制分区的分布(平衡I/O负荷)●提高可管理性,可用性和性能二、表分区的方法1.range使用表的字段的值的范围来进行分区,它特别适用于数据有逻辑范围的表。如一年中的月。当数据在范围内均匀分布时性能最好。createtablesalse(invoice_nonumber,saleyearintnotnull,salemonthintnotnull,sale_dayintnotnull)partionbyrange(saleyea,sale_month,sale_day)(partitionsale_q1valuelessthan(1999,04,01)tablespacetsapartitionsale_q2valuelessthan(2000,04,01)tablespacetsbpartitionsale_q2valuelessthan(maxvalue)tablespacetsc);--最大值maxvalue可以指定enablerowmovement来设置当分区列的值被修改时,将行移动到不同的分区。2.hash当数据不容易使用range分区,但你又需要使用分区来提高性能和可管理性,hash分区方法,根据分区值(partitioningkey)的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_salesnumber(10,2),statevarchar2(2))partitionbylist(state)(partitionq1_northwestvalue('OR','WA'),(partitionq1_southwestvalue('AZ','UT'));可以用值DEFAULT来指定除已经明确指定的值以外其他的值,NULL来指定空值。4.rang-hashcreatetablescubagear(equipnonumber,equipnamevarchar(32),pricenumber)partitionbyrange(equipno)subpartitionbyhash(equipname)subpartition8storein(ts1,ts2,ts3,ts4)---本文来源于网络,仅供参考,勿照抄,如有侵权请联系删除---(partitionp1valueslessthan(1000),partitionp1valueslessthan(2000),partitionp1valueslessthan(3000));5.rang-listcreatetablequarterly_regional_sales(deptnonumber,item_novarchar2(20),txn_datedate,txn_amountnumber,statevarchar2(2))tablespacets4partitionbyrange(txn_date)(partitionq1_1999valuelessthan(to_date('19990401','yyyymmdd'))(subpartitionq1_1999_northwestvalues('OR','WA')subpartitionq1_1999_southwestvalues('AZ','UT')),(partitionq2_2000valuelessthan(to_date('20000401','yyyymmdd'))(subpartitionq1_1999_northwestvalues('OR','WA')subpartitionq1_1999_southwestvalues('AZ','UT')));6.子分区模版当使用range-hash或rang-list分区方式时,如果子分区一致,则可以设置子分区模版来简化建表语句:createtableemp_sub_template(deptnonumber,empnamevarchar2(32),gradenumber)partitionbyrange(deptno)subpartitionbyhash(empname)subpartitiontemplate(subpartitionatablespacets1,subpartitionbtablespacets2)(partitionp1valuelessthan(1000),partitionp2valuelessthan(2000),partitionp3valuelessthan(MAXVALUE));三、修改分区表1.增加分区i.在range-partitioned表中增加分区range-partitioned表只能在最后(即partitionkey大于现存的最大值)增加分区,如果要在中间或开始,则必须使用splitpartitionaltertablesalesaddpartitionjan96valueslessthan(’01-FEB-1999’)tablespacetsx;ii.在hash-partitioned表中增加分区altertablescubagearaddpartitionp_namedtablespacegear5;当使用这个方式增加分区后,oracle将对现存数据重新分区,同时本地索引增加一个新分区,行被重新分区的索引分区标识为unusable,需要重建,全局分区设置为unusable需要重建。...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

确认删除?