ORACLE高水位(HWM)是什么意思


在Oracle數據的存儲中,可以把存儲空間想象為一個水庫,數據想象為水庫中的水。水庫中的水的位置有一條線叫做水位線,在Oracle中,這條線被稱為高水位線(High-warter mark, HWM)。在數據庫表剛建立的時候,由於沒有任何數據,所以這個時候水位線是空的,也就是說HWM為最低值。當插入了數據以后,高水位線就會上漲,但是這里也有一個特性,就是如果你采用delete語句刪除數據的話,數據雖然被刪除了,但是高水位線卻沒有降低,還是你剛才刪除數據以前那么高的水位。也就是說,這條高水位線在日常的增刪操作中只會上漲,不會下跌。

也就是說,高水位線不會因為 DELETE 操作而降低。

參考:https://zhidao.baidu.com/question/1495140752772864219.html

 

高水位並不會下降,隨之導致的是全表掃描的實際開銷並沒有任何減少。

delete數據是沒用的,即使數據刪除了,高水位的值也不會下降。

 

釋放表的高水位通常有如下幾種辦法:

(1)對表進行MOVE操作:ALTER TABLE TABLE_NAME MOVE;。若表上存在索引,則記得重建索引。

(2)對表進行SHRINK SPACE操作:ALTER TABLE TABLE_NAME SHRINK SPACE;,注意,在執行該指令之前必須開啟行移動:ALTER TABLE TABLE_NAME ENABLE ROW MOVEMENT;。該方法的優點是:在碎片整理結束后,表上相關的索引仍然有效,缺點是會產生大量的UNDO和REDO。

(3)復制要保留的數據到臨時表T,DROP原表,然后RENAME臨時表T為原表。

(4)exp/imp或expdp/impdp重構表。

(5)若表中沒有數據則直接使用TRUNCATE來釋放高水位。

參考:https://www.cnblogs.com/xxxyz/p/11495430.html


免責聲明!

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



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