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;