首页 | 互联网 | IT动态 | 网络设备 | 服务器 | IDC | 安全 | Cisco | Windows | Linux | Java | .Net | Oracle | CIW | 华为 | 专题
IT技术 | 网页设计 | 平面设计 | 电子书下载 | 教学视频 | 方案 | 数字网校 | 直播室 | 虚拟考场 | 面授培训 | 搜索 | 博客 | 沙龙 | 论坛
中国IT实验室Oracle频道
中国IT教育
首页 入门基础 安装配置 体系架构 PLSQL 备份恢复 性能调优 开发技术 资讯动态 考试认证 下载 专题 讨论
您现在的位置: 中国IT实验室 >> Oracle >> PLSQL >> 文章正文

Oracle数据库检查死锁的sql

文章来源wzy0623的专栏 作者佚名 更新时间2007-6-29 保存本文保存本文 推荐给好友推荐给好友 收藏本页收藏本页

实现代码如下:


SELECT   SID, DECODE (BLOCK, 0'NO''YES') blocker,
         DECODE (request, 
0'NO''YES') waiter
    
FROM v$lock
   
WHERE request > 0 OR BLOCK > 0
ORDER BY BLOCK DESC;

 

SELECT   bs.username "Blocking User", bs.username "DB User",
         ws.username "Waiting 
User", bs.SID "SID", ws.SID "WSID",
         bs.serial# "Serial#", bs.sql_address "address",
         bs.sql_hash_value "Sql hash", bs.program "Blocking App",
         ws.program "Waiting App", bs.machine "Blocking Machine",
         ws.machine "Waiting Machine", bs.osuser "Blocking OS 
User",
         ws.osuser "Waiting OS 
User", bs.serial# "Serial#",
         ws.serial# "WSerial#",
         DECODE (wk.TYPE,
                 
'MR''Media Recovery',
                 
'RT''Redo Thread',
                 
'UN''USER Name',
                 
'TX''Transaction',
                 
'TM''DML',
                 
'UL''PL/SQL USER LOCK',
                 
'DX''Distributed Xaction',
                 
'CF''Control FILE',
                 
'IS''Instance State',
                 
'FS''FILE SET',
                 
'IR''Instance Recovery',
                 
'ST''Disk SPACE Transaction',
                 
'TS''Temp Segment',
                 
'IV''Library Cache Invalidation',
                 
'LS''LOG START OR Switch',
                 
'RW''ROW Wait',
                 
'SQ''Sequence Number',
                 
'TE''Extend TABLE',
                 
'TT''Temp TABLE',
                 wk.TYPE
                ) lock_type,
         DECODE (hk.lmode,
                 
0'None',
                 
1'NULL',
                 
2'ROW-S (SS)',
                 
3'ROW-X (SX)',
                 
4'SHARE',
                 
5'S/ROW-X (SSX)',
                 
6'EXCLUSIVE',
                 TO_CHAR (hk.lmode)
                ) mode_held,
         DECODE (wk.request,
                 
0'None',
                 
1'NULL',
                 
2'ROW-S (SS)',
                 
3'ROW-X (SX)',
                 
4'SHARE',
                 
5'S/ROW-X (SSX)',
                 
6'EXCLUSIVE',
                 TO_CHAR (wk.request)
                ) mode_requested,
         TO_CHAR (hk.id1) lock_id1, TO_CHAR (hk.id2) lock_id2,
         DECODE
            (hk.BLOCK,
             
0'NOT Blocking',         /* Not blocking any other processes */
             
1'Blocking',             /* This lock blocks other processes */
             
2'Global',          /* This lock is global, so we can't tell */
             TO_CHAR (hk.BLOCK)
            ) blocking_others
    
FROM v$lock hk, v$session bs, v$lock wk, v$session ws
   
WHERE hk.BLOCK = 1
     
AND hk.lmode != 0
     
AND hk.lmode != 1
     
AND wk.request != 0
     
AND wk.TYPE(+= hk.TYPE
     
AND wk.id1(+= hk.id1
     
AND wk.id2(+= hk.id2
     
AND hk.SID = bs.SID(+)
     
AND wk.SID = ws.SID(+)
     
AND (bs.username IS NOT NULL)
     
AND (bs.username <> 'SYSTEM')
     
AND (bs.username <> 'SYS')
ORDER BY 1;
【责编:Peng】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·Java入门 Tomcat的配置技巧精华专题
 ·Oracle RMAN物理备份技术详解
 ·JAVA开发利器——JBuilder知多少
 ·Hello,web2.0技术进阶专题
 ·从入门到精通 java初学者实践系列教程
 ·JAVA 与 .NET两强对垒 到底该选什么?
 ·新手必读 认识JAVA涉及的名词
 ·WEB应用集群技术专题
 ·携手未来——Ajax技术专题
 ·Oracle入门基础专题
 今日更新
 社区讨论
 博客论点
 频道精选
 Oracle频道相关导航