ORACLE中的等待事件

empo007發表於2007-01-07
非空閒等待事件的含義[@more@]Buffer busy wait 表示在等待對資料告訴快取區的訪問,這種等待出現在會話讀取資料到buffer中或者修改buffer中的資料時,例如DBWR正在寫一些資料塊到資料檔案的同時,其他程式需要去讀取相應的資料塊。同時也可能表示在表上設定的freelist太小,不能支援大量併發的INSERT操作。在v$session_wait檢視的p1子段值表示相關資料塊所在的檔案號,p2表示檔案上的塊編號。透過這些資訊與dba_data_files和dba_extents的聯合查詢就可以很快定位到發生競爭的物件,從而近一步確定問題的根源。
Db file parrle write 於dbwr程式相關的等待,一般都代表了io能力出現問題。通常與配置的多個dbwr程式或者dbwr的io slaves個數有關,當然也可能意味這在裝置上出現io競爭!
Db file scattered read 表示發生了於全表掃描的等待。通常意味者全表掃描過多,或者io能力不足,或者io競爭
Db file sequential read 表示發生了於索引掃描有關的等待。同樣意味者io出現了問題,表示io出現了競爭和io需求太多
Db file single write 表示在檢查點發生時與檔案頭寫操作相關的等待。通常於檢查點同步資料檔案時檔案號的紊亂有關
Direct path read 表示於直接io讀相關的等待。當直接讀資料到pga記憶體時,direct path read出現。這種型別的讀請求典型的作為:排序io並行slave查詢或者預先讀請求等。通常這種等待於io能力或者io競爭有關
Direct path write 同上
Enqueue 表示於內部佇列機制有關的等待,例如保護內部資源或者元件的鎖的請求等,一種併發的保護機制
Free buffer inspected 表示在將資料讀入資料告訴緩衝區的時候等待程式找到足夠大的記憶體空間。通常這種等待表示資料緩衝區偏小。
Free buffer waits 表述資料告訴快取區缺少記憶體空間。通常於資料高速緩衝區記憶體太小或者髒資料寫出太慢導致。在這種情況下,可以考慮增大快取記憶體區或者透過設定更多的dbwr來解決
Latch free 表示某個鎖存器發生了競爭。首先應該確保已經提供了足夠多的latch數,如果仍然發生這種等待事件,應該進一步確定是那種鎖存器上發生了競爭(在v$session_wait上的p2子段表示了鎖存器的標號),然後判斷是什麼引起了這種鎖存器競爭。大多數鎖存器競爭不是簡單的鎖存器引起的,而是於鎖存器相關的元件引起的,需要找到具體導致競爭的根本。例如,如果發生了library cache latch競爭,那麼通常表示庫快取配置不合理,或者sql語句書寫不合理,帶來了大量的硬分析。
Library cache load lock 表示在將物件裝入到庫高速緩衝區的時候出現了等待。這種事件通常代表者發生了負荷很重的語句過載或者裝載,可能由於sql語句沒有共享池區域偏小導致的。
Library cache lock 表示與訪問庫快取記憶體的多個程式相關的等待。通常表示不合理的共享池大小。
Library cache pin 這個等待事件也與庫快取記憶體的併發性有關,當庫快取記憶體中的物件被修改或者被檢測的時候發生
Log buffer space 表示日誌緩衝區出現了空間等待事件。這種等待事件意味者寫日誌緩衝區的時候得不到相應的記憶體空間,通常發生在日誌緩衝區太小或者LGWR程式寫太慢的時候。
Log file parallel write 表示等待LGWR向作業系統請求io開始直到完成io。在觸發LGWR寫的情況下入3秒,1/3,1MB、DBWR寫之前可能發生。這種事件發生通常表示日誌檔案發生了io競爭或者檔案所在的驅動器較慢。
Log file single write 表示寫檔案頭塊的時候出現了等待。一般都是發生在檢查點發生時。
Log file switch
(archiveing needed) 由於歸檔過慢造成日誌無法進行切換而發生的等待。這種等待事件的原因可能比較多,最主要的原因是歸檔速度趕不上日誌切換的速度。可能的原因包括了重作日誌太了,重作日誌組太少,歸檔能力低,歸檔檔案發生了io競爭,歸檔日誌掛起,或者歸檔日誌放在了慢的裝置上。
Log file switch
(checkpoint incomplete) 表示在日誌切換的時候檔案上的檢查點還沒有完成。一般意味者日誌檔案太小造成日誌切換切換太快或者其他原因。
Log file sync 表示當服務程式發出commit或者rollbabk命令後,直到LGWR完成相關日誌寫操作這段時間的等待。如果有多個服務程式同時發出這種命令,LGWR不能及時完成日誌的寫操作,就有可能造成這種等待。
Transaction 表示發生一個阻賽回滾操作的等待
Undo segment extension 表示在等待回滾段的動態擴充套件。這表示可能事務量過大,同時也意味者可能回滾段的初始大小不是最優,minextents設定偏小。考慮減少事務,或者使用最小區數更多的回滾段。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/85922/viewspace-888836/,如需轉載,請註明出處,否則將追究法律責任。

相關文章