《深入解析Oracle》第九章,等待事件
進入倒數第二章,從題目來說,是個人比較生疏的章節
不過看過後,發現之前自學的過程中,已經接觸不少了
等待事件,算是對於資料庫效能優化極其重要的參考部分
Oracle的每個版本中所包含的等待事件數量各不相同
通過V$EVENT_NAME檢視,可以檢視當前版本所支援的等待事件名稱和部分相關資訊
而V$SYSTEM_WAIT_CLASS檢視,提供了各種等待事件的等待次數和時間
以前自學過的V$SESSION檢視可以和V$SESSION_WAIT檢視相結合
來查詢各個SESSION中各自的等待資訊
(版本到了10g後,V$SESSION檢視將V$SESSION_WAIT檢視包含進來了)
還有V$SESSION_EVENT和V$SYSTEM_EVENT檢視
分別記錄SESSION和整個系統的各個等待的相關資訊(累積的)
通過V$SESSIONI、V$SESSION、V$SQLTEXT檢視
可以查詢到某些極其消耗資源的SESSION的SQL語句
接下來,有幾個10g開始增加的新功能,之前已經做過一些功課了
保留短期歷史SESSION等待資訊的V$SESSION_WAIT_HISTORY檢視
根據此檢視,Oracle增加了ASH特性(Active Session History)
用來定時收集SESSION等待的相關資訊
而後還繁衍出AWR特性(Automatic Workload Repository)
再之後引出了ADDM特性(Automatic Database Diagnostic Monitor)
利用這些特性,可以有效分析資料庫執行狀態,並給出部分調整建議
個人用過一些篇幅進行過學習和試驗,不再累述
文章還具體介紹了部分重要等待事件
db file sequential read,資料檔案順序讀
資料庫在讀取索引或通過索引讀取資料時會發生此等待
一般情況,此等待的出現是較正常的
但某些情況,走索引反而會帶來效能損耗(如讀取的資料量過大)
db file scattered read,資料檔案分裂讀
也是較常見等待事件之一,程式讀取資料到Buffer Cache的時候,會出現此事件
通常意味著在進行全表掃描(Full Table Scan和Fast Full Scan)
direct path read/write,直接路徑讀/寫
指Oracle將資料直接寫入PGA程式或從PGA程式獲取資料直接寫入檔案,不經過SGA
容易發生在磁碟排序、並行操作等情況中
還有日誌相關等待,日誌切換log file switch,日誌同步log file sync
單獨寫日誌log file single write,併發寫日誌log file parallel write
日誌緩衝空間(不足)log Buffer Space
還有Enqueue等待,其中涉及了TM事務鎖,TX表級鎖,MR介質恢復鎖,ST空加事務鎖
表級鎖中還有以前曾經接觸過的幾種排他、共享鎖
另外還有Latch Free閂鎖釋放等待事件
Latch是Oracle內部簡單的序列鎖機制,用於保護Oracle內部的共享記憶體結構
Latch請求分兩類
willing-to-wait,不斷髮送請求直至得到Latch
immediate,獲取不到便會跳過,繼續執行後面操作
對於鎖的資訊,可以查詢V$LOCK、V$LATCH等檢視查詢
本章介紹的知識,對於優化資料庫效能有著很重要的意義
這需要建立在一定實踐經驗之上
等有事件,先檢視檢視公司的開發伺服器的執行情況
用來練練手 ^_^
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/556359/viewspace-590968/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【TUNE_ORACLE】等待事件之等待事件類別Oracle事件
- ORACLE 常見等待事件Oracle事件
- Oracle常見UNDO等待事件Oracle事件
- Oracle等待事件之enq: TM – contentionOracle事件ENQ
- oracle等待事件之enq: CF – contentionOracle事件ENQ
- 【TUNE_ORACLE】等待事件之IO等待“direct path write”Oracle事件
- 【TUNE_ORACLE】等待事件之IO等待“read by other session”Oracle事件Session
- 【TUNE_ORACLE】等待事件之日誌等待“log file sync”Oracle事件
- 【TUNE_ORACLE】等待事件之IO等待“direct path read”Oracle事件
- 【TUNE_ORACLE】等待事件之日誌等待“log file parallel write”Oracle事件Parallel
- 【TUNE_ORACLE】等待事件之IO等待“direct path write temp”Oracle事件
- 【TUNE_ORACLE】等待事件之IO等待“db file sequential read”Oracle事件
- 【TUNE_ORACLE】等待事件之IO等待“db file parallel write”Oracle事件Parallel
- 【TUNE_ORACLE】等待事件之IO等待“db file scattered read”Oracle事件
- Oracle面試寶典-等待事件篇Oracle面試事件
- [20201117]解析cursor pin S等待事件.txt事件
- 【TUNE_ORACLE】等待事件之“buffer busy waits”Oracle事件AI
- oracle等待事件之cursor:pin S wait on XOracle事件AI
- 【TUNE_ORACLE】等待事件之“library cache pins”Oracle事件
- 【TUNE_ORACLE】等待事件之“library cache lock”Oracle事件
- oracle 11.2.0.4 rac叢集等待事件enq: TM - contentionOracle事件ENQ
- Solidity事件,等待事件Solid事件
- 宜信DBA實踐|全面解析Oracle等待事件的分類、發現及優化Oracle事件優化
- Oracle 19c中的等待事件分類 Event WaitsOracle事件AI
- ORACLE 資料塊格式深入解析Oracle
- Selenium等待事件Waits事件AI
- Oracle10g等待事件型別wait_class說明Oracle事件型別AI
- 深入解析 oracle drop table內部原理Oracle
- latch等待事件彙總事件
- Latch free等待事件(轉)事件
- gc cr request等待事件GC事件
- 【等待事件】library cache pin事件
- 【等待事件】log file sync事件
- read by other session等待事件Session事件
- log file sync等待事件事件
- 13_深入解析Oracle資料庫bootstrapOracle資料庫boot
- 17_深入解析Oracle undo原理(1)_transactionOracle
- 14_深入解析Oracle table cluster結構Oracle
- 深入解析和定製Oracle優化工具Oracle優化