Oracle表刪除大量數據後查詢變慢問題

Oracle 表刪除大量數據後,即使表中只有幾行記錄,但用select count(*) from table 來查詢發覺都不會馬上出來,原因是該表的空間大了,查詢起來很慢。解決的方法是把該表所佔用的表空間縮小,或者說釋放表空間。
alter table XXXX move; 這樣處理後就釋放了表空間了。但是釋放表空間後,表的行號rowid會發生變化,而基於rowid的索引則會變成無效。因此該操作後必須重建索引。否則會 提示“ORA-01502: 索引’SMP.ITEMLOG_MID_IDX’或這類索引的分區處於不可用狀態” 而重建索引的方法當然可以先drop掉再create ,但是這樣太麻煩了,

用alter index XXX rebuild 這樣最快了,不會改變原來的索引結構。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章