待機イベントと共通のSQL DBAのセッション

選択する *
  V $ SESSION FROM
 WHERE USERNAMEがNULLではありません
   AND STATUS = ' ACTIVE ' 
 ORDER BY LOGON_TIME、SID;
2 対応プロセスとクエリセッション

SELECTのP.SPID、
       S.SID、
       S.OSUSER、
       S.MACHINE、
       S.PROGRAM、
       S.LOGON_TIME、
       Q.MODULE、
       S.SERIAL#、
       Q.SQL_ID、
       Q.SQL_TEXT、
       Q.SQL_FULLTEXT
  V $プロセスP FROM
 INNERは、V $ SESSION Sを登録しよう
    P.ADDR ON = S.PADDR
 INNERは、V $ SQLAREA Qを登録しよう
    ON S.SQL_ID = Q.SQL_ID
 WHERE S.AUDSID = USERENV(' SESSIONID ' )。

 - クエリ現在のセッション
対応するプロセス2.クエリセッション
3 対応するSQLのため。クエリセッション待機

SELECT P.PID、
       S.SID、
       S.SERIAL#、
       S.USERNAME、
       Q.SQL_ID、
       Q.SQL_TEXT、
       Q.SQL_FULLTEXT、
       W.EVENT、
       W.WAIT_TIME、
       W.STATE、
       CASE WHEN W.STATE = ' WAITING ' THEN W.SECONDS_IN_WAIT
            WHEN W.STATE = ' 既知の時間待ち' THEN W.WAIT_TIMEを
       END AS SEC_IN_WAIT
  V $ SESSION Sから、V $ SESSION_WAIT W、V $ SQLAREA Q、V $プロセスP
 WHERE S.SID = W.SID
   AND S.SQL_ID = Q.SQL_ID
   AND P.ADDR = S.PADDR
   AND W.EVENT NOT LIKE ' SQL * Netの%'
   そして、S.USERNAMEはNULLではありません
   AND W.WAIT_TIME > = 0
 ORDER BY DESC W.SECONDS_IN_WAIT
 ;
対応するSQL 3.クエリセッションの待機
4 。クエリセッション・イベントのために待機し、対応するSQL

SELECT P.PID、
       S.SID、
       S.SERIAL#、
       S.USERNAME、
       Q.SQL_ID、
       Q.SQL_TEXT、
       Q.SQL_FULLTEXT、
       E.EVENT、
       E.TOTAL_WAITS、
       E.TIME_WAITED、
       E.AVERAGE_WAIT
  V $ SESSION Sから、V $ SESSION_EVENT E、V $ SQLAREA Q、V $プロセスP
 WHERE S.SID = E.SID
   AND S.SQL_ID = Q.SQL_ID
   AND P.ADDR = S.PADDR
   AND E.EVENT NOT LIKE ' SQL * Netの%' 
   とS.STATUS = ' ACTIVE '
   そして、S.USERNAMEはNULLではありません
 ;
 
4.クエリのイベントを待っているセッションと、対応するSQL
5 対応する長時間実行SQLでクエリセッション

SELECT S.SID、
       RECORDING、
       TRUNC(L.SOFAR / L.TOTALWORK * 1002)|| ' ' AS PCT_WORK、
       L.ELAPSED_SECONDS ELAPSED、
       ROUND(L.ELAPSED_SECONDS *(L.TOTALWORK - L.SOFAR)/ L.SOFAR)REMAIN_TIME、
       Q.SQL_TEXT
  V $ SESSION_LONGOPS L、V $ SQLAREA Q、V $ SESSION S FROM
 WHERE L.SQL_HASH_VALUE = Q.HASH_VALUE
   AND L.SID = S.SID
    -そしてL.SOFAR!= L.TOTALWORK
   AND L.ELAPSED_SECONDS > 6
 ORDER BY L.START_TIME
 ;
 
対応するSQLと実行時間の長いクエリセッション
6 対応するSQLを使用した。クエリセッションとロック

SELECT A.OWNERスキーム、   
     A.OBJECT_NAMEテーブル名、   
     B.XIDUSNロールバックセグメント番号、   
     B.XIDSLOTスロット番号、   
     B.XIDSQNシリアル番号、   
     B.SESSION_ID锁表SESSION_ID、   
     B.ORACLE_USERNAMEロックテーブルのユーザ名、   
     デコード(D.type、   
            ' XR ' ' NULL ' ' RS ' ' SS(行-S)' ' CF ' ' SS(行-S)' ' TM ' ' テーブルロック' ' PW ' ' テーブルロック' ' TO " "テーブルロック' ' TS ' ' テーブルロック' ' RT ' ' 行ロック' ' TX ' ' 行ロック' ' MR ' ' S(シェア)" 
             NULL)ロックモード、   
      C.MACHINEユーザグループ、   
      C.TERMINALマシン名、   
      B.OS_USER_NAMEシステム・ユーザー名、   
      B.PROCESSシステムプロセスID、   
      DECODE(C.STATUS、' INACTIVE '' アクティブでない'' ACTIVE '' アクティビティ' )の活動、   
      C.SERVER、   
      C.SID、
      e.SQL_TEXT、  
      C.SERIAL#、   
      C.PROGRAM接続、   
      C.LOGON_TIME   
 ALL_OBJECTS A、V $ LOCKED_OBJECT B FROM、SYS.GV_ $ SESSION C、五$ ロックD、V $ E SQLTEXT
WHERE(A.OBJECT_ID = B.OBJECT_ID)   
  AND(B.PROCESS = C.PROCESS)   
  そしてC.sid = d.sid   
  そしてB.LOCKED_MODE = D.LMODE  
  そしてc.SQL_ID = e.sql_id(+ 
ORDER BY 12
対応するSQL 6.クエリセッションとロック
選択t2.username、
       t2.sid、
       #t2.serial、
       t3.object_name、
       t2.OSUSER、
       t2.MACHINE、
       t2.PROGRAM、
       t2.LOGON_TIME、
       t2.COMMAND、
       t2.LOCKWAIT、
       t2.SADDR、
       t2.PADDR、
       t2.TADDR、
       t2.SQL_ADDRESS、
       t1.LOCKED_MODE
  以下からの五$ LOCKED_OBJECT t1の、五$セッションT2、T3をDBA_OBJECTS、V $ SQL T4
  どこ t1.session_id = t2.sid
   そしてt1.object_id = t3.object_id
   ---及びt2.SADDR = t4.ADDRESS(+ 

   そしてt2.sql_id = t4.sql_id
 t2.logon_timeによって順序

 

ALTER SYSTEMのkillセッション' 139、182 ' 
:SID   182 :sertal#

6対応するSQL 0.1クエリセッションとロック
対応するSQL 6.1クエリセッションとロック
6 ブロックのセッションがブロックされている.2問い合わせ、対応するSQLセッション

選択する
    s1.username   " WAITINGのUSER " 
  、s1.osuser     " OSユーザー"

  、s1.LOGON_TIME " ログオン時には、" 
  、w.session_id " シド" 
  、p1.spid       " PID " 
  、q1.SQL_TEXT   " SQLTEXTを" 
  、s2.username          " HOLDINGユーザー" 
  、s2.osuser            " OSユーザーを"

  、s2.LOGON_TIME " ログオン時には、" 
  、h.session_id         " シドは" 
  p2.spid、              " PID " 
  、q2.SQL_TEXT          " SQLTEXTを"
から
    SYS.V_ $プロセスP1
  、SYS.V_ $処理P2
  、SYS.V_ $セッションS1
  、SYS.V_ $セッションS2
  、DBA_LOCKSワット
  、HをDBA_LOCKS
  V $ SQLのQ1
  V $ SQLのQ2
どこ
      h.mode_held      != ' なし' 
  とh.mode_held      != ' ヌル' 
  とw.mode_requested!= ' なし' 
  とw.lock_type( +)= h.lock_type
  AND w.lock_id1( +)= h.lock_id1
  AND w.lock_id2( +)= h.lock_id2
  AND w.session_id       = s1.sid(+ 
  AND h.session_id       = s2.sid(+ 
  AND s1.paddr           = p1.addr(+ 
  AND s2.paddr         = p2.addr(+ 
  AND s1.SQL_ID = q1.SQL_ID(+ 
  AND s2.SQL_ID = q2.SQL_ID(+ 
  h.session_idによって順序
  ;
ブロックされたセッションとのセッションをブロック6.2に対応するSQLクエリ

おすすめ

転載: www.cnblogs.com/vmsysjack/p/12150670.html