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住。...