oracle drop、truncate 分割槽表分割槽注意
由於客戶某表月初通過ogg匯入資料較多,ogg未能完成。因此決定使用資料泵臨時匯入。
停止ogg,刪除表分割槽資料。通過delete加條件篩選資料,發現數據量較大,嘗試刪除,執行很長時間後,undo不夠用報錯。
決定,truancate該分割槽。查看錶的分割槽,發現存在數個全域性索引和本地索引,百度一下對分割槽表某分割槽進行drop/truncate操作。
① 馬上回收空間:
alter table table_name truncate partition partition_name drop storage;
② 同時維護全域性索引:
alter table table_name drop partition partition_name update global indexes;
㈡ 對全域性索引的作用
大分割槽表truncate partition後,需要對全域性索引進行維護,否則,global index會變成unusable
問題介紹:
① 在drop partition時,為了維護global索引,要加update indexes或是update global indexes條件
②在truncate partition時也要維護global索引,要加update indexes或是update global indexes條件
UPDATE INDEXES同時維護全域性和本地索引
對於DROP/TRUNCATE PARTITION而言 ,二者沒有太大的區別
對於MERGE和SPLIT PARTITION,你就可以看到二者的區別了
雖然index是變得valid了,但是index的空間沒有釋放
因為該操作不等於REBUILD,只是在進行DDL的時候,同步維護索引資訊而已
綜上,可以使用
alter table table_name truncate partition (p1) update indexes;
或
alter table table_name truncate partition (p1) update global indexes;