簡(jiǎn)捷的Oracle增加表分區(qū)研究
Oracle增加表分區(qū)(add partition)是常用的Oracle分區(qū)常用的操作。下面就簡(jiǎn)單的介紹下Oracle增加表分區(qū)的知識(shí)要點(diǎn)。
增加表分區(qū)適應(yīng)于所有的分區(qū)形式,其語(yǔ)法是alter table tbname add partition .....
但是,需要注意對(duì)于像list,range這種存在范圍值的分區(qū),所要增加的分區(qū)值必須要大于當(dāng)前分區(qū)中的最大值(如果當(dāng)前存在maxvalue或default的分區(qū),add partition會(huì)報(bào)錯(cuò),這種情況只能使用split,后面會(huì)講到),hash分區(qū)則無(wú)此限制。
例如:
- JSSWEB> create table t_partition_range (id number,name varchar2(50))
- partition by range(id)(
- partition t_range_p1 values less than (10) tablespace tbspart01,
- partition t_range_p2 values less than (20) tablespace tbspart02,
- partition t_range_p3 values less than (30) tablespace tbspart03
- );
表已創(chuàng)建。
- JSSWEB> alter table t_partition_range
- add partition t_range_p4 values less than(40);
表已更改。
Hash和list的語(yǔ)法與上類似,這里不再舉例。
注意:
1、對(duì)于hash分區(qū),當(dāng)你執(zhí)行add partition操作的時(shí)候,oracle會(huì)自動(dòng)選擇一個(gè)分區(qū),并重新分配部分記錄到新建的分區(qū),這也意味著有可能帶來(lái)一些IO操作。
2、執(zhí)行alter table時(shí)未指定update indexes子句:
如果是range/list分區(qū),其local索引和global索引不會(huì)受影響;
如果是hash分區(qū),新加分區(qū)及有數(shù)據(jù)移動(dòng)的分區(qū)的local索引和glocal索引會(huì)被置為unuseable,需要重新編譯。
3、復(fù)合分區(qū)完全適用上述所述規(guī)則。
本文就Oracle增加表分區(qū)來(lái)自[Svn中文網(wǎng)]轉(zhuǎn)發(fā)請(qǐng)保留本站地址:http://www.svn8.com/sql/Oracle/2009111312912.html
【編輯推薦】