Exadata等待事件
一、 用戶IO類別中的Exadata等待事件
1、 cell smart table scan
cell smart table scan事件是Oracle用來計算卸載到存儲節點上的全表掃描所花費的時間。
參數:
P1-------節點哈希號
P2-------未使用
P3-------未使用
Obj#------正在掃描的表的對象號
注意:節點哈希號(cell hasvalue)可以在v$cell視圖中找到。這個視圖只有兩列,即CELL_PATH和CELL_HASHVAL,CELL_PATH列中實際包含了存儲節點的IP地址。
2、 cell smart index scan
當所有快速全掃描(fast full index scan)執行卸載操作時,cell smart index scan事件開始記錄時間。這個事件與cell smart table scan類似,除了掃描的對象是索引以外,它還替代了direct path read 事件,直接返回數據到請求進程的PGA中,而不是數據庫buffer cache中。
參數:
P1-------節點哈希號
P2------未使用
P3------未使用
Obj#------真正掃描的索引的對象號
3、 cell single block physical read
這個事件相當於非Exadata平臺上使用的db file sequential read。單塊讀是最常用的索引訪問路徑(包括讀取索引塊以及索引查找時通過rowid讀取表數據塊),它也可以使用在很多不同的讀取單個數據塊的操作中。
參數:
P1------節點哈希號
P2------磁盤哈希號
P3------讀取操作返回的總字節數(當塊爲8KB大小時,此值總是8192)
Obj#------正在讀取的對象的對象號
4、 cell multiblock physical read
相當於之前命名有點歧義的db file scattered read事件,在非Exadata平臺上,db file scattered read事件說明數據庫向操作系統發出了一個連續的多塊讀請求,Oracle數據塊11gR2依然沿用該事件命名。
Exadata平臺上的cell 木拉提blockphysical read 用於當表的大小比串行直接路徑讀取的閥值小時而執行的串行全表掃描操作。即這個事件經常用於相對較小的表的全表掃描上,它同樣用於沒有執行直接路徑讀取的索引快速全掃描上。
參數:
P1------節點哈希號
P2------磁盤哈希號
P3------讀取操作返回的總字節數
Obj#------正在讀取的對象的對象號
5、 cell list of blocks physical read
這個事件用來替代db file parallel read事件,該等待事件與並行查詢或者並行DML毫無相干。
該事件用於非相鄰塊的多塊讀,此操作使用異步IO更有效,異步IO在Exadata上是默認開啓的。該事件最常見的觸發操作是:Index Range Scan、Index Unique Scan和Table Access By Index Rowid,產生該事件最常見的原因是索引預讀取。
參數:
P1------節點哈希號
P2------磁盤哈希號
P3------讀取的塊數
Obj#------正在讀取的對象的對象號
6、 cell smart file creation
這個事件發生在創建一個表空間或者手動向表空間中添加數據文件時,在DML操作過程中數據文件自動擴展時也可能發生這個事件。
參數:
P1------節點哈希號
P2------未使用
P3------未使用
7、 cell statistics gather
這個事件記錄了花費在讀取不同的V$和X$表上的時間,雖然該事件被分組到用戶IO類別中,但是它並沒有涉及讀取或寫入磁盤的操作。常見的有:V$CELL、V$CELL_THREAD_HISTORY(X$KCFISOSSN)、V$CELL_REQUEST_TOTALS(X$KCFISOSST)以及其他幾個屬於同一家族的X$表。
參數:
P1------節點哈希號(永遠是0)
P2------未使用
P3------未使用
二、 系統IO類別中的Exadata等待事件
1、 cell smart incremental backup
這個事件用於計算等到RMAN做1級增量備份的時間。Exadata通過將很多處理卸載到存儲層來優化增量備份。
參數:
P1------節點哈希號
P2------未使用
P3------未使用
Obj#------未使用
注意:很多等待事件都包括obj#字段,甚至一些並不具體涉及一個單獨的對象的事件。在某些情況下,該值被某個事件所設置,當等待結束時並沒有及時清除,導致爲下一個等待事件留下無意義的值。
2、 cell smart restore from backup
這個事件用於計算等待RMAN還原(restore)的時間,Exadata通過將處理卸載到存儲節點上來優化RMAN恢復操作。
參數:
P1------節點哈希號
P2------未使用
P3------未使用
3、 cell manager closing cell
這是一個關閉相關的事件,這個事件在V$session_wait視圖的P1列包含了節點哈希號,P2和P3未使用。
4、 cell manager discovering disks
這是一個啓動相關的事件,這個事件在V$session_wait視圖的P1列包含了節點哈希號,P2和P3未使用。
5、 cell manager opening cell
這是一個啓動相關的事件,這個事件在V$session_wait視圖的P1列包含了節點哈希號,P2和P3未使用。
三、 其他類別和空閒類別中的Exadata等待事件
1、 cell smart flash unkeep
這個事件記錄了Oracle將數據庫刷出Exadata只能閃存的時間。如果一張表的存儲子句指定它被緩存在Exadata智能閃存中,當這張表被截斷(truncate)或者刪除(drop)時會發生該事件。
參數:
P1------節點哈希號
P2------未使用
P3------未使用
2、 cell manager cancel work request
這個事件的信息並不豐富,v$session_wait視圖中的三個參數(P1,P2,P3)都沒有使用。
3、 cell work online completion
它看起來是一個起點事件,v$session_wait視圖中的P1列包含了此事件的節點哈希號,P2列和P3列沒有使用。
4、 cell work retry
v$session_wait視圖中的P1列包含了此事件的節點哈希號,P2列和P3列沒有使用
5、 cell work idle
在這個空閒事件中,v$session_wait視圖中的P1列、P2列和P3列都沒有使用。
四、 舊事件
1、 direct path read
Oracle使用直接路徑讀取將數據直接讀入PGA內存(而不是讀入buffercache),他們是Exadata卸載不可分割的一部分。因爲只有當使用直接路徑讀取機制時,SQL處理纔可以被卸載到存儲節點上。當查詢被卸載時,direct path read等待時間實際上被cell smart table scan和cell smartindex scan等待事件所替代。
參數:
P1------文件號
P2------塊的首地址(文件內偏移量)
P3------讀取的塊數量
Obj#------正在掃描的表的對象號
2、 enq:KO---fast object checkpoint
該事件本質上是一個檢查點事件,當一個會話等待某個對象的所有髒塊刷出buffer cache時,該事件就會出現。
參數:
P1------名稱/模式
P2------未使用
P3------未使用
Obj#------正在做檢查點的對象的對象號
3、 reliable message
這個事件用於記錄前臺進程和後臺進程通信的時間,如檢查點進程(FKPT)。這個事件和enq:KO---fast object checkpoint事件有着密切的關係。是enq:KO---fastobject checkpoint事件的前導事件,進程間通信是通過一個通信信道來完成的,而不是常規的信號機制。
參數:
P1------信道上下文
P2------信道句柄
P3------廣播消息
Obj#------重要對象的對象號(並不總是被賦值)
五、 資源管理事件
1、 resmgr:cpu quantum
這個事件用於記錄由於高優先級工作的競爭,數據庫資源管理器(DBRM)強加給會話的強制性空閒時間。
參數:
P1------位置(這是一個數字類型,指的是一個Oracle代碼中的位置(函數))
P2------使用者組ID
P3------未使用
Obj#------NA
2、 resmgr:pq queued
這個事件用於記錄在並行查詢隊列裏的等待時間。
參數:
P1------位置(這是一個數字類型,指的是一個Oracle代碼中的位置(函數))
P2------未使用
P3------未使用
Obj#------NA
以上內容摘錄自《深入理解OraceExadata》