Oracle中常見等待事件的說明

2021-09-05 19:55:19 字數 2661 閱讀 2269

oracle中常見等待事件的說明

buffer busy waits

指出等待資料庫緩衝區快取記憶體中的緩衝區。這表示某個會話正把這個緩衝區讀入快取記憶體和/或修改它。也可能是支援許多併發insert操作的表上缺乏足夠的空閒列表的表徵

db file parallel write

指出與dbwr程序有關的等待。可能與dbwr程序或配置的dbwr i/o程序的數目有關。還可以指示較低或較高爭用的裝置

db file scattered read

指出與全表掃瞄有關的等待。可能表示i/o爭用或太多的i/o

db file sequential read

指出(在別的東西中)與乙個索引掃瞄有關的等待。可能表示i/o爭用或太多的i/o

db file single write

指出與在乙個檢查點中標題寫入有關的等待。典型的情況是在資料檔案編號紊亂的環境中

direct path read

指示並允許直接i/o相關的等待。一般表示裝置上的i / o爭用

direct path write

指與direct path read相同。只不過對應於寫入

enqueue

指出與鎖定各種oracle資源和元件的內部排隊機制有關的等待。關於oracle中完整的排隊列表,請參閱oracle8ireference manual的附錄b

free buffer inspected

指出並確定資料庫緩衝區快取記憶體中空閒緩衝區以便把資料放入該快取記憶體的程序有關的等待free buffer waits 指出資料庫緩衝區快取記憶體中缺乏空閒緩衝區。這可能表示資料庫緩衝區快取記憶體太小或灰列表(快取記憶體中修改過的塊的列表)寫到磁碟的速度不夠快。如果是這樣,可配置更多的dbwr程序或i/o從程序,視情況而定。這個事件在空閒緩衝區檢查事件未發現任何空閒緩衝區時產生

latch free

指出正等待的某號閂鎖的爭用。應該保證已經通過設定相應的init.ora引數,將閂鎖數目調整為所允許的最大數目。如果問題繼續存在,應該確定是什麼引起該閂鎖的爭用並處理基本的問題。要確實找到問題的根源。閂鎖空閒事件是大問題

的表徵。例如,如果從這個事件推導出的某號栓鎖為乙個庫快取記憶體閂鎖(假定適當配置了共享池),則可能表示有大量的硬解析。這一般是其中有硬編碼值的

應用程式的問題。或者用繫結變數重寫它們或者公升級到oracle 8i 並使用cursor_sharing = force(或採用別的辦法)

library cache load lock

指這是把物件裝入庫快取記憶體所要求的。此等待事件可在發生大量重新裝載/裝載(一般由缺乏重用sql語句或尺寸不合適的共享池區所引起)時產生

library cache lock

指出與訪問庫快取記憶體的多個程序的併發性有關的等待。可指出尺寸設定不合適的共享池區,因為需要獲得這個鎖以便在庫快取記憶體中定位物件

library cache pin

此等待事件也與庫快取記憶體併發性有關,並且在給定物件需要在庫快取記憶體中修改或檢查時產生此事件

log buffer space

指出不能跟上伺服器程序寫入重做日誌緩衝區的速率的lgwr的可能的問題。一般表示日誌緩衝區尺寸問題(太小)或者聯機重做日誌所處的裝置較慢或爭用

log file parallel write

指出從重做日誌緩衝區將重做記錄寫入磁碟的相關等待一般表示聯機重做日誌所處的裝置較慢或爭用

log file single write

指出寫入到日誌檔案的標題塊。可能表示檢查點中的等待

log file switch

指出arch跟不上lgwr的等待。可能是因為聯機重做(archiving needed) 日誌太小、裝置較慢或裝置上的爭用較多(一般由日誌檔案位於資料檔案所在的裝置上引起)。還可能需要研究多個arch程序或i/o從程序的可能性,這要視具體情況而定

log file switch

指出與尺寸設定不恰當(太小)的聯機重做日誌檔案有關(checkpoint incomplete) 的等待

log file sync

指出與使用者提交時重做日誌緩衝區清洗有關的等待。如果此等待持續不變,可能表示放置聯機重做日誌檔案的裝置爭用和/或裝置較慢sql*net message 指出使用者程序和伺服器程序通訊中占用的時間。在某些不from/ to client 指常見的情況下,可清楚地顯示出網路傳輸問題,但多數情況下可以忽略。如果應用程式支援arrayize(如oracle forms、sql*plus、pro*c等)配置,則配置aarrayize為乙個大於預設值的值可能會減少這個事件的等待sql*net message 指出與分布式處理(從其他資料庫中極select)有關的等待from dblink 指這個事件在通過d blink聯機查詢其他資料庫時產生。如果查詢的資料多數是靜態的,則移動這些資料到本地表並根據需要重新整理它,會在效能上出現很大的差別

timer in sksawat

指出乙個較慢的arch程序,這或者是由於資料庫的多個元件爭用,或者是由於沒有執行歸檔的足夠的i/o程序/從程序

transaction

指出與回退操作阻塞事務處理有關的等待undo segment extension 指出回退段的區和擴充的動態分配。這可能表示回退段的數目不是最佳,或者這些回退段的minextents數不是最佳

write complete waits

指示與寫入到磁碟的緩衝區有關的等待。這種寫入可能由資料庫緩衝區快取記憶體的正常老化引起

Oracle 常見的幾種等待事件

等待事件分為主動觸發事件與被動觸發事件。主動觸發事件 發生一次就進性一次記錄,例如io等 被動觸發事件 例如latch的獲取,只有當遇到阻塞時,獲取不到時,才會記錄該等待事件,如果沒有阻塞,即使獲取的時間再長,也不會記錄該事件。讀不阻塞寫,寫阻塞讀。等待的元凶只能是dml語句 因為當乙個使用者a讀取...

ORACLE 等待事件

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

Oracle 等待事件解讀

oracle olap和oltp解讀 oracle index索引解讀 oracle 分割槽表解讀 oracle 鎖解讀 oracle 等待事件解讀 oracle procedure cursor解讀 等待事件主要可以分為兩類,即空閒 idle 等待事件和非空閒 non idle 等待事件。1 空閒...