您好,登錄后才能下訂單哦!
1.什么是高水位
高水位是Oracle中使用和未使用空間中的邊界線,也可以理解為數據文間和非數據文間的分界線,但是這里的數據文件指代的是存儲過數據的數據文件,而非僅僅是數據表中有數據的數據文件。
2.高水位對于檢索的影響
假設我們有個表有2百萬行數據存儲在幾個區中,假如我們刪除一百萬條數據。盡管數據區中的數據沒有了,但是Oracle中占用的區的數據空間仍然不變,與原來二百萬條數據占用的數據空間是一樣的。當我們在數據庫中執行查詢時,Oracle仍會遍歷所有的數據塊,即便這些數據塊中沒有數據。從這個角度來說,高水位可以理解為已使用的數據塊或數據區。
高水位下的數據塊中至少有一塊是有數據的,當然這些數據也可能被刪除掉了。由于Oracle知道高水位上的數據區是沒有數據的,所以它在讀取數據時只讀取到高水位線。正是這個原理,當數據庫中的表數據增大到一定的數據量時,如果將表中的數據移動到一個新的歷史表中,并將當前表中的數據清空,并不會提高當前數據表的檢索效率。因為數據的高水位沒有變。
如果數據庫中的大部分數據被刪除了,應該使用Shrink命令降低高水位,這樣才能提高數據的查詢效率。當然如果使用數據庫分區表也就是另外一種解決方案了。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。