Oracle資料庫buffer busy wait等待事件 (1)
當會話意圖訪問緩衝儲存器中的資料塊,而該資料塊正在被其它會話使用時產生buffer busy waits事件。其它會話可能正在從資料檔案向緩衝區儲存器度曲同樣的資料塊,或正在緩衝儲存器中對其進行修改。
為了確保讀取器會話擁有與獲得所有更改或無更改的資料塊一致的映像,正在修改該資料塊的會話在其標題中標記一個標誌,讓其他會話知道有一個更改正在進行而等候更改的的完成。
檢視v$waitstat不是OWI的元件,但其為沒一類緩衝區提供了有用的等待統計。遭遇buffer busy等待事件最常見的緩衝區類為塊、段標題、撤消塊、撤消標題。
顯示一個查詢v$waitstat檢視的取樣輸出:
具體示例如下:
SELECT * FROM V$waitstat WHERE COUNT>0;
CLASS COUNT TIME
------------------ ---------- ----------
data block 4170082 1668098
segment header 116 98
undo header 916 1134
undo block 2087 1681
1、等待引數
buffer wait busy的等待引數描述如下:
P1 在Oracle 8及其以後版本的資料庫裡,P1顯示詢問資料塊駐留的絕對檔案號。
P2 程式需要訪問的實際塊號。
P3 在Oracle10g以前的版本中,著是表示等待原因的數字。Oracle在內河程式碼中在
多個地方用不同的原因碼提交。該原因碼取決於版本。
2、等待時間
100釐秒或1秒。
· Oracle會話正在等待釘住一個緩衝區。必須在讀取或修改緩衝區前將它釘住。在任何
時刻只有一個程式可以釘住一個緩衝區。
·buffer busy waits表明讀/讀、讀/寫、寫/寫爭用。
·採取的適當措施取決於P3引數中的原因碼。
在SGA中讀取或修改緩衝區的會話必須首先獲取cache buffers chains鎖存器,並且遍歷
這個緩衝區鏈,直到他發現必需的緩衝區頭。然後,他必須以共享模式或獨佔模式獲取
一個緩衝區鎖或緩衝區頭上的pin,這取決於他計劃的操作。一旦緩衝區頭被釘住,會話
就釋放cache buffers chains鎖存器,並在緩衝區自身上執行計劃的操作。如果無法獲
取一個pin,會話就在buffer busy waits等待事件上等待。這種等待時間不會應用於在
會話的私有PGA中執行的讀取或寫入操作。
3、診斷的原因、診斷和動作
·表示為什麼程式無法獲得一個緩衝區pin的主要原因碼。
·buffer busy waits等待時間需要的塊類。
·和buffer busy waits時間相關的SQL語句。
·緩衝區所屬的段。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1384/viewspace-244047/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle資料庫buffer busy wait等待事件 (2)Oracle資料庫AI事件
- buffer busy wait 等待事件說明AI事件
- buffer busy wait 等待事件說明(轉)AI事件
- 等待模擬-BUFFER BUSY WAITAI
- 【等待事件】buffer busy waits事件AI
- 模擬產生CBC LATCH與buffer busy wait等待事件AI事件
- 轉載經典文章 buffer busy wait 等待事件說明AI事件
- 【TUNE_ORACLE】等待事件之“buffer busy waits”Oracle事件AI
- [摘錄]Oracle Wait Interface之Buffer busy waits事件OracleAI事件
- 等待事件_buffer_busy_waits_and_read_by_other_session(1)事件AISession
- buffer busy wait 解析AI
- log buffer space wait event等待事件AI事件
- wait event:gc buffer busyAIGC
- Buffer Busy Wait小結AI
- zt_buffer busy waitAI
- oracle buffer busy waits等待的含義OracleAI
- buffer busy wait 的深度剖析AI
- 記一次gc buffer busy等待事件的處理GC事件
- 等待事件_buffer_busy_waits_and_read_by_other_session(2)事件AISession
- 等待事件_buffer_busy_waits_and_read_by_other_session(3)事件AISession
- 等待事件_buffer_busy_waits_and_read_by_other_session(4)事件AISession
- oracle wait event 等待事件OracleAI事件
- oracle virtual circuit wait 等待事件OracleUIAI事件
- Oracle Dba必須瞭解的buffer busy waits等待OracleAI
- buffer busy waits 平均等待時間AI
- Oracle Buffer Busy WaitsOracleAI
- 啟動資料庫後,等待事件出現大量wait for undo record資料庫事件AI
- ORACLE等待事件型別【Classes of Wait Events】Oracle事件型別AI
- gc current/cr block busy等待事件GCBloC事件
- Buffer Cache以及buffer busy waits/gc相關事件AIGC事件
- 【等待事件】Buffer Exterminate事件
- oracle等待事件之cursor:pin S wait on XOracle事件AI
- ARCH wait on SENDREQ 等待事件AI事件
- virtual circuit wait等待事件UIAI事件
- 等待事件ARCH wait on ATTACH事件AI
- Cache Buffer Chain Latch等待事件AI事件
- oracle等待事件型別wait_class說明Oracle事件型別AI
- 等待事件 (wait event) [final]事件AI