翻了一下以前的一些文档, 发现保存着查询oracle 死锁的sql 语句, 这是以前的一个前辈教给我的, 拿出来贴贴
--查询死锁SQL
SELECT /*+ rule */ s.username,
decode(l.type,'TM','TABLE LOCK',
'TX','ROW LOCK',
NULL) LOCK_LEVEL,
o.owner,o.object_name,o.object_type,
s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser
FROM v$session s,v$lock l,dba_objects o
WHERE l.sid = s.sid
AND l.id1 = o.object_id(+)
AND s.username is NOT NULL ;
SELECT /*+ rule */ s.username,
decode(l.type,'TM','TABLE LOCK',
'TX','ROW LOCK',
NULL) LOCK_LEVEL,
o.owner,o.object_name,o.object_type,
s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser
FROM v$session s,v$lock l,dba_objects o
WHERE l.sid = s.sid
AND l.id1 = o.object_id(+)
AND s.username is NOT NULL ;
--杀死死锁的session, 释放死锁
alter system kill session '1055,621'; -- 第一个参数是 sid, 第二个参数是 serial#
可能有很多的死锁, 但是释放了前面的几个, 可能后面的锁就都解开了