ORACLE的效能調優 水平位

2021-06-07 06:07:29 字數 953 閱讀 4539

在oracle資料的儲存中,可以把儲存空間想象為乙個水庫,資料想象為水庫中的水。水庫中的水的位置有一條線叫做水位線,在oracle中,這條線被稱為高水位線(high-warter mark, hwm)。在資料庫錶剛建立的時候,由於沒有任何資料,所以這個時候水位線是空的,也就是說hwm為最低值。當插入了資料以後,高水位線就會**,但是這裡也有乙個特性,就是如果你採用delete語句刪除資料的話,資料雖然被刪除了,但是高水位線卻沒有降低,還是你剛才刪除資料以前那麼高的水位。也就是說,這條高水位線在日常的增刪操作中只會**,不會**。hwm通常增長的幅度為一次5個資料塊.

select語句會對錶中的資料進行一次掃瞄,但是究竟掃瞄多少資料儲存塊呢,這個並不是說資料庫中有多少資料,oracle就掃瞄這麼大的資料塊,而是oracle會掃瞄高水位線以下的資料塊。現在來想象一下,如果剛才是一張剛剛建立的空表,你進行了一次select操作,那麼由於高水位線hwm在最低的0位置上,所以沒有資料塊需要被掃瞄,掃瞄時間會極短。而如果這個時候你首先插入了一千萬條資料,然後再用delete語句刪除這一千萬條資料。由於插入了一千萬條資料,所以這個時候的高水位線就在一千萬條資料這裡。後來刪除這一千萬條資料的時候,由於delete語句不影響高水位線,所以高水位線依然在一千萬條資料這裡。這個時候再一次用select語句進行掃瞄,雖然這個時候表中沒有資料,但是由於掃瞄是按照高水位線來的,所以需要把一千萬條資料的儲存空間都要掃瞄一次,也就是說這次掃瞄所需要的時間和掃瞄一千萬條資料所需要的時間是一樣多的。所以有時候有人總是經常說,怎麼我的表中沒有幾條資料,但是還是這麼慢呢,這個時候其實奧秘就是這裡的高水位線了。

那有沒有辦法讓高水位線下降呢,其實有一種比較簡單的方法,那就是採用truncate語句進行刪除資料。採用truncate語句刪除乙個表的資料的時候,類似於重新建立了表,不僅把資料都刪除了,還把hwm給清空恢復為0。所以如果需要把錶清空,在有可能利用truncate語句來刪除資料的時候就利用truncate語句來刪除表,特別是那種資料量有可能很大的臨時儲存表。

Oracle效能調優

在過去的十年中,oracle已經成為世界上最專業的資料庫之一。對於it專家來說,就是要確保利用oracle的強大特性來提高他們公司的生產力。最有效的方法之一是通過oracle調優。它有大量的調整引數和技術來改進你的oracle資料庫的效能。oracle調優是乙個複雜的主題。關於調優可以寫整整一本書,...

Oracle效能調優原則

任何事情都有它的源頭,要解決問題,也得從源頭開始,影響oracle效能的源頭非常多,主要包括如下方面 資料庫的硬體配置 cpu 記憶體 網路條件。1.cpu 在任何機器中cpu的資料處理能力往往是衡量計算機效能的乙個標誌,並且oracle是乙個提供並行能力的資料庫系統,在cpu方面的要求就更高了,如...

調優 Nginx效能調優

一.nginx優化配置 1.主配置檔案優化 注 部分配置詳解 worker processes 8 nginx程序數,建議按照cpu數目來指定,一般為它的倍數。worker cpu affinity 00000001 00000010 00000100 00001000 00010000 00100...