天天看點

分區表SPLIT過程和注意事項【SPLIT OF PARTITION TABLE PROCEDURE AND TIPS】

 PARTIOTION表對于處理巨量資料來講幾乎是個killer function!

    我對于系統中的大表和超大型表,主要的處理方式是根據公司前台應用的操作特性,對于一定周期後,隻進行查詢的資料,進行分區壓縮,隻是保留近期内可能還涉及DML操作的表在“最近”(我的分區名稱:recent)中,用普通的存儲方式進行儲存。

    而對于PARTITION的表來講,之後的管理工作還是比較多的。

    其中涉及到的工作中比較多的就是SPLIT(分裂)和DROP PARTITION(11g中應該就不會這樣痛苦了)。

    通過我對SPLIT過程的分析,發現SPLIT内部操作的基本過程:

    1.發出指令後,ORACLE在我制定的新分區所在表空間中建立一個TEMPERORARY類型的表,其實這個表就是未來的新分區。将符合條件的資料導入。

    2.在完成第一步後,ORACLE在原被分區的分區所在表空間上,又建立了一個TEMPRORARY類型的臨時表,這時ORACLE開始将不屬于新分區的資料在導入到這張臨時表中。如果使用了UPDATE INDEXES的話,ORACLE最後還要維護索引。

    3.完成後,改變表名(更新資料字典)

    知道了這樣的過程,我們在做SPLIT操作時,需要注意:

    在被分區的分區所在的表空間上,需要有足夠的剩餘表空間。當然,如果使用UPDATE INDEXES的話,索引所在的表空間也需要必要的剩餘表空間。

    如果說有LOCAL INDEX,在系統資源允許的情況下,帶上 update indexes子句是不錯的選擇。

    另外,這個分裂過程也解除了我的一個憂慮,被分裂的分類資料是否要重組?現在看是沒有必要的,因為ORACLE已經為你重組了這個分區中的資料了。

-------

   ORACLE版本:10.2.0.1

   OS        :HP-UX B.11.23 U ia64

本文轉自Be the miracle!部落格51CTO部落格,原文連結http://blog.51cto.com/miracle/51516如需轉載請自行聯系原作者

Larry.Yue