等待事件相關(zt)

tolywang發表於2008-08-18

v$event_name :   event的定義

查詢等待事件:   v$session_wait,   v$system_wait,   v$session_wait_history

SELECT    SID,  EVENT   FROM   V$SESSION_WAIT;

檢視各種事件的歸類:

Select name,wait_class from v$event_name ;

db file sequential read :出現原因可能在多表連線中,表的連線順序存在問題,沒有正確使用驅動表;或者可能索引使用存在問題。

db file scattered read :可能和全表掃描或快速全索引掃描有關,大量此事件可能意味著應用問題或索引缺失。

查詢全表掃描的物件:

SELECT DISTINCT object_name, object_owner

           FROM v$sql_plan p

          WHERE p.operation = 'TABLE ACCESS'

            AND p.options = 'FULL'

            AND object_owner = 'ANTICELLDA';

查詢全索引掃描物件:

SELECT DISTINCT object_name, object_owner

           FROM v$sql_plan p

          WHERE p.operation = 'INDEX'

            AND p.options = 'FULL SCAN'

            AND object_owner = 'ANTICELLDA';

查詢全表掃描的sql語句:

SELECT   sql_text

    FROM v$sqlteXt t, v$sql_plan p

   WHERE t.hash_value = p.hash_value

     AND p.operation = 'TABLE ACCESS'

     AND p.options = 'FULL'

ORDER BY p.hash_value, t.piece;

 

Direct path read/write:直接路徑讀/寫,通常發生在Oracle直接讀資料到PGA/PGA寫資料到資料檔案或臨時檔案,這個操作不經過SGADSS決策支援系統Decision Support System)系統中存在大量是正常的。OLTP聯機事務處理on-line transaction processing)則意味著系統應用存在問題,導致大量的磁碟排序讀取操作,臨時表空間使用頻繁。V$tempseg_usage, v$tempfile

 

Enqueue :佇列等待,一種保護共享資源的鎖定機制,如果此事件比較顯著,需要進一步追蹤哪個類別的鎖定。常見的有ST,HW,TX,TM等。ST Enqueue用於空間管理和字典管理的表空間(DMT)的區間分配,在DMT中,典型的是uet$fet$資料字典的爭用。

Latch free:閂鎖釋放等待,說明有程式正在等待某個latch 被釋放。Latch 用於保護SGA 中共享記憶體結構,防止被多個使用者同時訪問。Latch通常是作業系統利用記憶體中的某個位置,透過設定變數為0或非0來表示latch 是否已經被取得。v$latch,latch分為 willing-to-wait,immediate。前者表示請求的latch不能立即得到,請求程式等待一段時間後再次發出請求,程式重複執行此過程直到得到latch。後者表示請求程式不會等待,而是繼續執行下去。

對於willing-to-waitlatch,過程如下:

http://files.cnblogs.com/yifan268/latch.pdf 

查詢長時間執行的事務,可能很多是全表掃描,注意opname

Select * from v$session_longops; 

 

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

相關文章