Oracle 等待事件 一
以前一直想整理一下關於Oracle 的等待事件,總是沒時間。現在覺得應該著手做了,其中的一些知識來自於自己的一點研究,如有錯誤,望大家指正。。。。。
一 Oracle等待事件主要有兩類事件:
1 空閒等待
空閒等待意味著Oracle正在等待某種動作的發生,實際上並不是因為繁忙而等待,而是因為沒有事情做所以等待,如:smon timer,SMON程式的一些操作時每隔一段實際迴圈執行的,即使系統不忙,此事件也不立即發生,而是等待計時器達到一定的時間才執行,此時出現的smon timer 等待事件,而系統並沒有出現效能上的問題。多數的空閒等待對資料庫效能的影響不大,可以不必過多的關注。
空閒等待事件有:(加註釋的比較典型)
1 dispatcher timer 排程器計時器
2 lock element cleanup
3 Null event null事件
4 parallel query dequeue wait
5 parallel query idle wait - Slaves
6 pipe get 管道取操作
7 PL/SQL lock timer
8 pmon timer- pmon
9 rdbms ipc message 資料庫ipc 訊息
10 slave wait
11 smon timer smon 計時器
12 SQL*Net break/reset to client
13 SQL*Net message from client 來自客戶端的訊息
14 SQL*Net message to client 傳送訊息到客戶端
15 SQL*Net more data to client
16 virtual circuit status 虛擬環路狀態訊息
17 client message 客戶機訊息
2 非空閒等待事件:
通常資料庫發生競爭時就會出現非空閒的等待事件,即某種操作A發生時,A所需要的資源正在被其他的操作佔用,而這種獨佔的資源不能被操作A請求立即得到,操作請求被堵塞而發生等待。這些等待事件是我們在調整資料庫的時候應該關注與研究的。非空閒的等待主要有:
Buffer busy wait : 表示在等待對資料告訴快取區的訪問,這種等待出現在會話讀取資料到buffer中或者修改buffer中的資料時。
Db file parrle write 於dbwr程式相關的等待,一般都代表了io能力出現問題。通常與配置的多個dbwr程式或者dbwr的io slaves個數有關,當然也可能意味這在裝置上出現io競爭!
Db file scattered read 表示發生了於全表掃描的等待。通常意味者全表掃描過多,或者io能力不足,或者io競爭。
Db file sequential read 表示發生了於索引掃描有關的等待。
Db file single write 表示在檢查點發生時與檔案頭寫操作相關的等待。
Direct path read 表示於直接io讀相關的等待。
Direct path write 同上
Enqueue 表示於內部佇列機制有關的等待,例如保護內部資源或者元件的鎖的請求等,一種併發的保護機制。
Free buffer inspected 表示在將資料讀入資料告訴緩衝區的時候等待程式找到足夠大的記憶體空間。
Free buffer waits 表述資料告訴快取區缺少記憶體空間。通常於資料高速緩衝區記憶體太小或者髒資料寫出太慢導致。
Latch free 表示某個鎖存器發生了競爭。
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設定偏小。考慮減少事務,或者使用最小區數更多的回滾段。
參考:
《Oracle 資料效能最佳化》
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-631779/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle等待事件一Oracle事件
- 【等待事件】ORACLE常見等待事件事件Oracle
- oracle等待事件Oracle事件
- Oracle 等待事件Oracle事件
- oracle的一些等待事件Oracle事件
- oracle等待事件3構造一個Direct Path write等待事件和構造一個Log File Sync等待事件Oracle事件
- Oracle Mutex 等待事件OracleMutex事件
- 【Oracle概念】-等待事件Oracle事件
- Oracle的等待事件Oracle事件
- 【TUNE_ORACLE】等待事件之等待事件類別Oracle事件
- ORACLE 常見等待事件Oracle事件
- oracle常見等待事件Oracle事件
- Oracle 空閒等待事件Oracle事件
- Oracle等待事件詳解Oracle事件
- ORACLE中的等待事件Oracle事件
- 【效能調整】等待事件(三) 常見等待事件(一)事件
- Oracle常見UNDO等待事件Oracle事件
- ORACLE等待事件詳解(轉)Oracle事件
- ORACLE等待事件:direct path writeOracle事件
- Oracle等待事件的種類Oracle事件
- Oracle 等待事件V$檢視Oracle事件
- Oracle 常見的等待事件Oracle事件
- oracle wait event 等待事件OracleAI事件
- Oracle-監控oracle的等待事件Oracle事件
- Latch free等待事件一事件
- Oracle面試寶典-等待事件篇Oracle面試事件
- Oracle常見等待事件說明Oracle事件
- Oracle常見等待事件介紹Oracle事件
- oracle virtual circuit wait 等待事件OracleUIAI事件
- 【TUNE_ORACLE】等待事件之IO等待“direct path write”Oracle事件
- 【TUNE_ORACLE】等待事件之日誌等待“log file sync”Oracle事件
- 【等待事件】等待事件系列(5.1)--Enqueue(佇列等待)事件ENQ佇列
- oracle等待事件2構造一個DB File Sequential Read等待事件和構造一個Direct Path ReadOracle事件
- 【效能調整】等待事件(一)事件
- 【分享】latch free等待事件(一)事件
- 【TUNE_ORACLE】等待事件之IO等待“direct path read”Oracle事件
- 【TUNE_ORACLE】等待事件之IO等待“db file parallel write”Oracle事件Parallel
- 【TUNE_ORACLE】等待事件之IO等待“direct path write temp”Oracle事件