Oracle deadlock detect script

查看SQL死锁

select 	a.username username, 
		a.sid sid, 
		a.serial# serial,
		b.id1 id1, 
		c.sql_text sqltext 
from 	v$session a, 
		v$lock b, 
		v$sqltext c 
where 	b.id1 in (select distinct e.id1 from v$session d,v$lock e where d.lockwait = e.kaddr)    
		and a.sid = b.sid    
		and c.hash_value = a.sql_hash_value    
		and b.request = 0;

select /*+ NO_MERGE(a) NO_MERGE(b) NO_MERGE(c) */ 'Wait' "Status", 
		a.username, 
		a.machine, 
		a.sid, 
		a.serial#, 
		a.last_call_et "Seconds", 
		b.id1, 
		c.sql_text "SQL" 
from 	v$session a, 
		v$lock b, 
		v$sqltext c 
where 	a.username is not null 
and 	a.lockwait = b.kaddr 
and 	c.hash_value =a.sql_hash_value 
union 
select /*+ NO_MERGE(a) NO_MERGE(b) NO_MERGE(c) */ 'Lock' "Status", 
		a.username, 
		a.machine, 
		a.sid, 
		a.serial#, 
		a.last_call_et "Seconds", 
		b.id1, c.sql_text "SQL"
from 	v$session a, 
		v$lock b, 
		v$sqltext c 
where 	b.id1 in (select /*+ NO_MERGE(d) NO_MERGE(e) */ distinct e.id1 from v$session d, v$lock e where d.lockwait = e.kaddr) 
and 	a.username is not null 
and 	a.sid = b.sid 
and 	b.request=0 
and 	c.hash_value =a.sql_hash_value;
    select p.spid,  
           a.serial#,   
           c.object_name,  
           b.session_id,  
           b.oracle_username,  
           b.os_user_name   
    from   v$process p,v$session a, v$locked_object b,all_objects c   
    where  p.addr=a.paddr and   
           a.process=b.process and   
           c.object_id=b.object_id;  



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值