Oracle11g維護分割槽(七)——Modifying Real Attributes of Partitions

kingsql發表於2015-08-06
    修改一個表或者索引現有分割槽的屬性,是可能的。
    你不能改變TABLESPACE屬性。使用ALTER TABLE ... MOVE PARTITION/SUBPARTITION來將一個分割槽或者子分割槽移動到新的表空間。

修改現有範圍或列表分割槽屬性

    使用ALTER TABLE ... MODIFY PARTITION來修改現有範圍分割槽或列表分割槽的屬性。你可以修改段屬性(除了TABLESPACE),或者你可以分配和釋放區,標識本地索引分割槽為UNUSABLE,或者重建標識為UNUSABLE的本地索引。

    如果這是一個複合雜湊分割槽表的範圍分割槽,那麼請注意以下幾點:

l  如果你分配或釋放一個區,指定分割槽的每一個子分割槽都會執行該操作;

l  同樣,修改任何其他屬性會導致該分割槽的所有子分割槽的相關屬性被修改。分割槽級別的預設屬性也會被修改。為了避免修改現有子分割槽的屬性,可以使用MODIFY DEFAULT ATTRIBUTES語句的FOR PARTITION子句。

    以下是修改一個分割槽實際屬性的一些例子。

    該例子修改了salessales_q1範圍分割槽的MAXEXTENTS儲存屬性:

點選(此處)摺疊或開啟

  1. ALTER TABLE sales MODIFY PARTITION sales_q1

  2.      STORAGE (MAXEXTENTS 10);


    在下面的例子中,在範圍-雜湊分割槽表scubagearts1分割槽裡,所有的本地索引子分割槽被標識為UNUSABLE

點選(此處)摺疊或開啟

  1. ALTER TABLE scubagear MODIFY PARTITION ts1 UNUSABLE LOCAL INDEXES;
    對於間隔分割槽表而言,你只能修改範圍分割槽或者已有間隔分割槽的實際屬性。

修改現有雜湊分割槽屬性

    你也可以使用ALTER TABLE ... MODIFY PARTITION語句來修改雜湊分割槽的屬性。但是,由於所有單個雜湊分割槽的物理屬性必須一致(除了TABLESPACE),你只限於:

l  分配一個新的區

l  釋放一個未使用的區

l  標識一個本地索引分割槽為UNUSABLE

l  重建被標識為UNUSABLE的本地索引分割槽

    下面的例子重建了dept表和P1雜湊分割槽相關的所有UNUSABLE本地索引分割槽:

點選(此處)摺疊或開啟

  1. ALTER TABLE dept MODIFY PARTITION p1

  2.      REBUILD UNUSABLE LOCAL INDEXES;

修改現有子分割槽屬性

    使用ALTER TABLEMODIFY SUBPARTITION子句,你可以執行前面列出的相同操作,只是在指定的複合分割槽表子分割槽級別。例如:

點選(此處)摺疊或開啟

  1. ALTER TABLE emp MODIFY SUBPARTITION p3_s1

  2.      REBUILD UNUSABLE LOCAL INDEXES;

修改現有索引分割槽屬性

    使用ALTER INDEXMODIFY PARTITION子句,你可以修改索引分割槽或其子分割槽的實際屬性。規則和修改表分割槽屬性十分類似,但是對於ALTER INDEX語句的MODIFY PARTITION子句不同的是,沒有重建unusable索引分割槽的子句,但是有合併索引分割槽或其子分割槽的子句。在這種情況下,合併意味著合併索引快以釋放它們重新利用。

    你還可以使用MODIFY PARTITION來分配或釋放本地索引的子分割槽,或者標識為UNUSABLE


hoegh
15.8.5
-- The End --



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28389881/viewspace-1763308/,如需轉載,請註明出處,否則將追究法律責任。

相關文章