Oracle增加表分区(add partition)是常用的Oracle分区常用的操作。下面就简单的介绍下Oracle增加表分区的知识要点。
增加表分区适应于所有的分区形式,其语法是alter table tbname add partition …..
但是,需要注意对于像list,range这种存在范围值的分区,所要增加的分区值必须要大于当前分区中的最大值(如果当前存在maxvalue或default的分区,add partition会报错,这种情况只能使用split,后面会讲到),hash分区则无此限制。
例如:
JSSWEB>createtablet_partition_range(idnumber,namevarchar2(50)) partitionbyrange(id)( partitiont_range_p1valueslessthan(10)tablespacetbspart01, partitiont_range_p2valueslessthan(20)tablespacetbspart02, partitiont_range_p3valueslessthan(30)tablespacetbspart03 );
表已创建。
JSSWEB>altertablet_partition_range addpartitiont_range_p4valueslessthan(40);
表已更改。Hash和list的语法与上类似,这里不再举例。
注意:
1、对于hash分区,当你执行add partition操作的时候,oracle会自动选择一个分区,并重新分配部分记录到新建的分区,这也意味着有可能带来一些IO操作。
2、执行alter table时未指定update indexes子句:如果是range/list分区,其local索引和global索引不会受影响;如果是hash分区,新加分区及有数据移动的分区的local索引和glocal索引会被置为unuseable,需要重新编译。
3、复合分区完全适用上述所述规则。
本文就Oracle增加表分区来自[Svn中文网]转发请保留本站地址:http://www.svn8.com/sql/Oracle/2009111312912.html
【编辑推荐】
- 修改Oracle存储过程所需代码对Oracle存储过程的总结实现Oracle存储过程的实际应用的代码深入高性能的Oracle动态SQL开发Oracle SQL的优化规则解析