查询发生阻塞的SQL:
select * from v$lock l2
where (l2.TYPE,l2.ID1,l2.ID2) in (
select type,id1,id2 from v$lock
where block = 1
);
从上述执行结果可以看出,发生了行锁,会话143阻塞了会话138!
查询锁住的对象:
SELECT * FROM DBA_OBJECTS WHERE OBJECT_ID = (
select object_id from v$locked_object where session_id = 143
);
导致143会话,持有TAB_TEST表的行锁没有释放锁的SQL:
select l.session_id sid,
s.serial#,
l.locked_mode,
l.oracle_username,
s.user#,
l.os_user_name,
s.machine,
s.terminal,
a.sql_text,
a.action
from v$sqlarea a, v$session s, v$locked_objec