修正ORACLE表的高水位線

在ORACLE中,執行對錶的刪除操作不會降低該表的高水位線。而全表掃描將始終讀取一個段(extent)中所有低於高水位線標記的塊。如果在執行刪除操作後不降低高水位線標記,則將導致查詢語句的性能低下。下面的方法都可以降低高水位線標記。

1.執行表重建指令 alter table table_name move;
(在線轉移表空間ALTER TABLE 。。。 MOVE TABLESPACE 。。。
 ALTER TABLE 。。。 MOVE 後面不跟參數也行,
 不跟參數表還是在原來的表空間,move後記住重建索引
 如果以後還要繼續向這個表增加數據,沒有必要move,
 只是釋放出來的空間,只能這個表用,其他的表或者segment無法使用該空間 )

2.執行alter table table_name shrink space; 注意,此命令爲Oracle 10g新增功能,再執行該指令之前必須允許行移動 alter table table_name enable row movement;
3.複製要保留的數據到臨時表t,drop原表,然後rename臨時表t爲原表
4.emp/imp
5.alter   table  table_name  deallocate   unused  
6.儘量truncate 吧

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