查詢鎖等待情況

pxbibm發表於2014-12-16
 如果發生了鎖等待,我們可能更想知道是誰鎖了表而引起誰的等待
以下的語句可以查詢到誰鎖了表,而誰在等待。
以上查詢結果是一個樹狀結構,如果有子節點,則表示有等待發生。
如果想知道鎖用了哪個回滾段,還可以關聯到V$rollname,其中xidusn就是回滾段的USN.
可以使用下面的SQL檢視鎖的情況。
SELECT   LPAD (' ', DECODE (l.xidusn, 0, 3, 0)) || l.oracle_username
              user_name,
           o.owner,
           o.object_name,
           o.object_type,
           s.sid,
           s.serial#,
           s.LOGON_TIME
    FROM   v$locked_object l, dba_objects o, v$session s
   WHERE   l.object_id = o.object_id AND l.session_id = s.sid
ORDER BY   o.object_id, xidusn DESC ,s.LOGON_TIME asc

和鎖相關的表
--以下幾個為相關表
SELECT * FROM v$lock;
SELECT * FROM v$sqlarea;
SELECT * FROM v$session;
SELECT * FROM v$process ;
SELECT * FROM v$locked_object;
SELECT * FROM all_objects;
SELECT * FROM v$session_wait;
--kill session語句
alter system kill session'sid,serial#';

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

相關文章