针对ORACLE数据库
--发现死锁的进程
select object_name as 对象名称,s.sid,s.serial#,p.spid as 系统进程号
from v$locked_object l , dba_objects o , v$session s , v$process p
where l.object_id=o.object_id and l.session_id=s.sid and s.paddr=p.addr;
--杀死死锁的进程序
alter system kill session '89,60085';(89,60085分别是‘sid,s.serial#,’)
--找出引起死锁的话句
select t2.username,t2.sid,t2.serial#,t2.logon_time,t3.sql_text
from v$locked_object t1,v$session t2,v$sqltext t3
where t1.session_id=t2.sid
and t2.sql_address=t3.address
order by t2.logon_time;
本文介绍如何使用Oracle数据库的v$locked_object、v$sessions、v$process视图来发现并解决死锁问题,包括查询导致死锁的进程、杀死特定会话以及找出引起死锁的具体SQL语句。
2466

被折叠的 条评论
为什么被折叠?



