1. 程式人生 > >Oracle 刪除資料後釋放資料檔案所佔磁碟空間

Oracle 刪除資料後釋放資料檔案所佔磁碟空間

據說,隨著資料的 insert,所使用段(Segment)的資料塊(data block)也不斷增加,這時候高水位(HWM)也隨著上升。當資料被刪除後(無論是 delete 還是 truncate table)雖然被佔用的資料塊(data block)已經相應減少,但是高水位(HWM)並不會隨之下降。當高水位(HWM)下存在大量的空白資料塊(data block)時,如果發生全表掃描(Full Table Scan, FTS)就會造成很多額外的 IO。因為全表掃描(FTS)的時候讀取段(Segment)中的資料塊(data block)會一直讀取到高水位(HWM)才結束。高水位(HWM)就是段(Segment)中資料塊(data block)有沒有使用的分界線,所以全表掃描(FTS)所花費的時間不但不會因為資料的刪除而減少,反而會增加。(關於此段查詢效率的內容有待驗證,筆者未親自驗證
。不過可以確定的是高水位確實不會隨著資料的刪除而下降。)