如何检查oracle是否有死锁?
选择bs.username“阻止用户”,bs.username“数据库用户”,
ws.username“等待用户”,bs。希德"希德",ws。希德SID,
bs.serial#“序列号”,bs.sql_address“地址”,
bs . Sql _ hash _ value“Sql hash”,bs.program“阻止App”,
ws.program“等待App”,bs.machine“堵机”,
ws.machine“等待机器”,bs.osuser“阻塞OS用户”,
ws.osuser "等待操作系统用户",bs.serial# "Serial# ",
ws.serial# "WSerial# ",
解码(wk。类型,
MR ','媒体恢复',
RT ','重做线程',
UN ','用户名',
'发送','交易',
' TM ',' DML ',
UL ',' PL/SQL用户锁',
' DX ','分布式事务',
CF ','控制文件',
是','实例状态',
FS ','文件集',
IR ','实例恢复',
ST ','磁盘空间事务',
TS ','临时段',
IV ','库缓存失效',
' LS ','日志开始或切换',
RW ','行等待',
SQ ','序列号',
' TE ','扩展表',
TT ','临时表',
wk。类型
)lock_type,
解码(hk.lmode,
0,'无',
1,'空',
2,' ROW-S (SS)',
3,“第X排(SX)”
4,'分享',
5,' S/ROW-X (SSX)',
6,'独家',
TO_CHAR (hk.lmode)
)mode _ held,
解码(wk.request,
0,'无',
1,'空',
2,' ROW-S (SS)',
3,“第X排(SX)”
4,'分享',
5,' S/ROW-X (SSX)',
6,'独家',
TO_CHAR(工作请求)
)模式_请求,
TO _ CHAR(hk . id 1)lock _ id 1,TO_CHAR (hk.id2) lock_id2,
译
(hk。块,
0,'未阻塞',/**//*未阻塞任何其他进程*/
1,'阻塞',/**//*此锁阻塞其他进程*/
2,'全局',/**//*这个锁是全局的,所以我们说不清*/
TO_CHAR (hk。块)
)屏蔽_其他
从v $锁定hk、v $会话bs、v $锁定wk、v $会话ws
香港在哪里?BLOCK = 1
还有hk.lmode!= 0
还有hk.lmode!= 1
还有wk.request!= 0
还有wk。键入(+) = hk。类型
以及wk.id1(+) = hk.id1
以及wk.id2(+) = hk.id2
还有香港。SID = bs。SID(+)
还有wk。SID = ws。SID(+)
和(bs.username不为空)
和(bs.username & lt& gt系统’)
和(bs.username & lt& gtSYS’)
按1排序;
查询死锁选择语句
select SQL _ text from v $ SQL where hash _ value in(
select SQL _ hash _ value from v$session where sid in(select session _ id from v$locked _ object)
)