ITPub博客

首页 > 数据库 > 数据库开发技术 > 查询处理死锁会话的sql语句(转贴)

查询处理死锁会话的sql语句(转贴)

原创 数据库开发技术 作者:hljhrbsjf 时间:2011-01-12 10:45:20 0 删除 编辑

一直以来自己都想写一个能够查询系统中有死锁的会话的语句,查到后杀掉会话,

select
(select username from v$session where sid=a.sid) blocker,
a.sid, 'is blocking',
(select username from v$session where sid=b.sid) blockee,
b.sid
from v$lock a,v$lock b
where a.block=1 and b.request>0
and a.id1=b.id1 and a.id2=b.id2

查询哪些session阻塞了哪些其他进程.

BLOCKER SID 'ISBLOCKING BLOCKEE SID
---------- ---------- ----------- ------------------------------ ----------
SYS 46 is blocking SYS 36
SYS 46 is blocking SYS 49

这个查的不是死锁,,只是"查询哪些session阻塞了哪些其他进程

select * from v$sqltext
where address in (
select sql_address from v$session where sid in (
select session_id from v$locked_object))

这个只查询什么语句阻塞

然后自己写了个语句,该语句可以查询哪个用户的哪个对象,会话的sid,serial以及阻塞的语句,还是很全面的。

col owner format a10;
col oracle_username format a10;
col object_type format a10;
select a.owner,a.object_name,a.object_type,b.oracle_username,b.process,c.sid,c.serial#,d.sql_text from dba_objects a,v$locked_object b,v$session c,v$sqltext d
where a.object_id=b.object_id and b.session_id=c.sid and c.sql_address=d.address;

OWNER OBJECT_NAM OBJECT_TYP ORACLE_USE PROCESS SID SERIAL#
---------- ---------- ---------- ---------- ------------ ---------- ----------
SQL_TEXT
----------------------------------------------------------------
SYS T1 TABLE SYS 3768:3772 36 11
update t1 set id =15 where id=1

SYS T1 TABLE SYS 4008:2660 49 21
update t1 set id =30 where id=2

另外一篇文章处理死锁会话的sql

翻了一下以前的一些文档, 发现保存着查询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 ;

--杀死死锁的session, 释放死锁
alter system kill session '1055,621'; -- 第一个参数是 sid, 第二个参数是 serial#
可能有很多的死锁, 但是释放了前面的几个, 可能后面的锁就都解开了 ......

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/631872/viewspace-1044505/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    114
  • 访问量
    544669