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


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

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM