Oracle 11g维护分区(二)——Coalescing Partitions


融合分区

融合分区是减少哈希分区表或索引的分区数量的一种方法,也可以用来减少复合哈希分区表的子分区数量。当一个哈希分区被融合时,它的内容会根据哈希函数重新分配到一个或多个其他分区。被融合的分区是由数据库来选定的,在其内容完成重新分布后会被删除。如果你在引用分区表定义的基表中进行融合分区操作,那么引用分区表会自动继承新的分区定义。

索引可能被标识为UNUSABLE,如下表所述:

表类型

索引操作

普通表(堆表)

除非你在ALTER TABLE语句中指定UPDATE INDEXES字句:

l  l  对于新增分区和重新分配的现有分区的本地索引,被标识为UNUSABLE,必须重建。

l  l  所有全局索引,或者分区全局索引的所有分区,被标识为UNUSABLE,必须重建。

索引组织表

l  对于本地索引,和普通表的处理方式一样。

l  所有全局索引保持可用;

在哈希分区表中融合一个分区

我们用ALTER TABLE ... COALESCE PARTITION语句在哈希分区表中融合一个分区。下面的语句通过融合一个分区,使表ouu1的分区数量减少了一个。 

ALTER TABLE ouu1

COALESCE PARTITION;

在复合哈希分区表中融合一个子分区

下面的语句将分区us_locations的一个子分区的内容重新分布到同一分区的一个或多个其他子分区(由哈希函数决定),需要注意的是,对于一个间隔分区表而言,你只能融合物化范围分区或者物化间隔分区的哈希子分区。基本上,这个操作可视为MODIFY PARTITION ... ADD SUBPARTITION的逆操作。

ALTER TABLE diving MODIFY PARTITION us_locations

COALESCE SUBPARTITION;

融合全局哈希分区索引

在一个全局哈希分区索引中,我们可以使用ALTER INDEX语句的COALESCE PARTITION子句来让数据库减少一个索引分区。数据库会基于哈希分区的要求来选择分区。下面的语句将索引hgidx的分区数量减少了一个。

ALTER INDEX hgidx COALESCE PARTITION;

相关内容