如果发生了锁等待,我们可能更想知道是谁锁了表而引起谁的等待
以下的语句可以查询到谁锁了表,而谁在等待。
以上查询结果是一个树状结构,如果有子节点,则表示有等待发生。
如果想知道锁用了哪个回滚段,还可以关联到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博客 ” ,链接:https://blog.itpub.net/12798004/viewspace-1369645/
,如需转载,请注明出处,否则将追究法律责任。