Oracle 表刪除大量數據後,即使表中只有幾行記錄,但用select count(*) from table 來查詢發覺都不會馬上出來,原因是該表的空間大了,查詢起來很慢。解決的方法是把該表所佔用的表空間縮小,或者說釋放表空間。 alter table XXXX move; 這樣處理後就釋放了表空間了。但是釋放表空間後,表的行號rowid會發生變化,而基於rowid的索引則會變成無效。因此該操作後必須重建索引。否則會提示“ORA-01502: 索引'SMP.ITEMLOG_MID_IDX'或這類索引的分區處於不可用狀態” 而重建索引的方法當然可以先drop掉再create ,但是這樣太麻煩了,用alter index XXX rebuild 這樣最快了,不會改變原來的索引結構。 |
Oracle 表刪除大量數據後查詢變慢問題
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Oracle 歸檔日誌介紹
Has_it
2020-07-08 11:45:27
log_archive_dest_n 和log_archive_dest和 log_archive_duplex_dest
Has_it
2020-07-08 11:45:24
Oracle遇到錯誤
Has_it
2020-07-08 11:45:23
Oracle索引錯誤的解決辦法
Has_it
2020-07-08 11:45:21
ORACLE兩表關聯更新
SAP 千里马
2020-07-08 11:10:54
更換ORACLE表對象所屬用戶
xuyuhai
2020-07-08 05:43:21
Oracle查找第n個最大值
xuyuhai
2020-07-08 05:05:10
Linux、Oracle、MySQL命令提示符顯示時間
成屿
2020-07-08 04:42:27
如何解決表空間不足問題(數據文件達到最大值)
huangwuming002
2020-07-08 01:50:15
shutdown immediate一直停在那裏
yangchen8497
2020-07-07 05:52:40
安裝grid時報ins 30044錯誤
yangchen8497
2020-07-07 05:52:40
ORA-12560 TNS:protocol adapter error
yangchen8497
2020-07-07 05:52:40