Oracle 等待事件解讀

2021-07-24 09:04:13 字數 1239 閱讀 1190

oracle-olap和oltp解讀

oracle-index索引解讀

oracle-分割槽表解讀

oracle-鎖解讀

oracle-等待事件解讀

oracle-procedure/cursor解讀

等待事件主要可以分為兩類,即空閒(idle)等待事件和非空閒(non-idle)等待事件。

1). 空閒等待事件

oracle正等待某種工作,在診斷和優化資料庫的時候,不用過多注意這部分事件。

2).非空閒等待事件

專門針對 oracle 的活動,指資料庫任務或應用執行過程中發生的等待,這些等待事件是在調整資料庫的時候需要關注與研究的。

在 oracle 10g 中的等待事件可以通過v$event_name檢視來檢視等待事件的相關資訊。

從本質上講,這個等待事件的產生僅說明了乙個會話在等待乙個 buffer(資料塊),但是導致這個現象的原因卻有很多種。

常見的兩種是:

oracle 操作的最小單位是塊( block),即使你要修改一條記錄,也需要對這條記錄所在的這個資料塊做操作。

當乙個會話修改乙個資料塊時,是按照以下步驟來完成的:

( 1) 以排他的方式獲得這個資料塊( latch)

( 2) 修改這個資料塊。

( 3) 釋放 latch。

記憶體中資料塊的存放位置是記錄在乙個 hash 列表( cache buffer chains)當中的。

當乙個會話需要訪問某個資料塊時,它首先要搜尋這個 hash 列表,從列表中獲得資料塊的位址,然後通過這個位址去訪問需要的資料塊,這個列表 oracle會使用乙個 latch 來保護它的完整性。

當乙個會話需要訪問這個列表時,需要獲取乙個 latch,只有這樣,才能保證這個列表在這個會話的瀏覽當中不會發生變化。

產生 buffer latch 的等待事件的主要原因是:

控制檔案頻繁寫入的原因很多,比如:

( 1) 日誌切換太過頻繁,導致控制檔案資訊相應地需要頻繁更新。

( 2) 系統 i/o 出現瓶頸,導致所有 i/o 出現等待。

當系統出現日誌切換過於頻繁的情形時,可以考慮適當地增大日誌檔案的大小來降低日誌切換頻率。

當系統出現大量的 control file parallel write 等待事件時,可以通過比如降低控制檔案的拷貝數量,將控制檔案的拷貝存放在不同的物理磁碟上的方式來緩解i/o 爭用。

ORACLE 等待事件

1 gc current block 2 way 乙個例項請求對當前節點 主控節點 中的乙個資料塊進行修改,該資料塊又因為修改已快取在另一節點中。存在 寫 寫 爭用 2 gc current block 3 way 乙個例項請求對當前訪問的乙個資料塊進行修改,主控節點收到請求,將訊息發給當前塊的擁有...

ORACLE等待事件型別 一

author skate tiime 2009 11 18 oracle等待事件型別 classes of wait events 每乙個等待事件都屬於某一類,下面給出了每一類等待事件的描述。every wait event belongs to a class of wait event.the ...

oracle非空閒等待事件

oracle非空閒等待事件 已上傳 摘錄 事件引數說明 事件號 事件名 引數一 引數二 引數三 145buffer busy waits file block 9i 原因碼 10g block class oracle會話正在等待pin住乙個緩衝區,會話必須在讀取或修改緩衝區之前將該緩衝區pin住。...