1.在操作基礎表的同時更新全局索引這就不需要后來單獨地重建全局索引;
2.因為沒有被標記成UNUSABLE, 所以全局索引的可用性更高了,甚至正在執行分區的DDL 語句時仍然可用索引來訪問表中的其他分區,避免了查詢所有失效的全局索引的名字以便重建它們;
另外在指定UPDATE GLOBAL INDEXES 之前還要考慮如下性能因素:
1.因為要更新事先被標記成UNUSABLE 的索引,所以分區的DDL 語句要執行更長時間,當然這要與先不更新索引而執行DDL 然后再重建索引所花的時間做個比較,一個適用的規則是如果分區的大小小于表的大小的5% ,則更新索引更快一點;
2.DROP TRUNCATE 和EXCHANGE 操作也不那么快了,同樣這必須與先執行DDL 然后再重建所有全局索引所花的時間做個比較;
3.要登記對索引的更新并產生重做記錄和撤消記錄,重建整個索引時可選擇NOLOGGING;
4.重建整個索引產生一個更有效的索引,因為這更利于使用空間,再者重建索引時允許修改存儲選項。
注意分區索引結構表不支持UPDATE GLOBAL INDEXES 子句。
1.1.3 普通表變為分區表
將已存在數據的普通表轉變為分區表,沒有辦法通過修改屬性的方式直接轉化為分區表,必須通過重建的方式進行轉變,一般可以有三種方法,視不同場景使用:
用例:
方法一:利用原表重建分區表。
CREATE TABLE T (ID NUMBER PRIMARY KEY, TIME DATE);
INSERT INTO T
SELECT ROWNUM, SYSDATE - ROWNUM FROM DBA_OBJECTS WHERE ROWNUM <= 5000;
COMMIT;
CREATE TABLE T_NEW (ID, TIME) PARTITION BY RANGE (TIME)
(PARTITION P1 VALUES LESS THAN (TO_DATE('2000-1-1', 'YYYY-MM-DD')),
PARTITION P2 VALUES LESS THAN (TO_DATE('2002-1-1', 'YYYY-MM-DD')),
PARTITION P3 VALUES LESS THAN (TO_DATE('2005-1-1', 'YYYY-MM-DD')),
文章來源于領測軟件測試網 http://www.kjueaiud.com/