ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 查询oracle锁住的对象

查询oracle锁住的对象

原创 Linux操作系统 作者:lxq1985 时间:2010-01-06 13:52:10 0 删除 编辑

最近遇到这样一个问题,操作一个表,发现被人锁定了,于是查询谁锁定的表,发现多人锁定,安全起见,不能全部kill,于是用一下语句判定,谁锁定,谁等待。

SELECT /*+ rule */ lpad(' ',decode(l.xidusn ,0,3,0))||l.oracle_username User_name,
o.owner,o.object_name,o.object_type,s.sid,s.serial#
FROM v$locked_object l,dba_objects o,v$session s
WHERE l.object_id=o.object_id
AND l.session_id=s.sid
ORDER BY o.object_id,xidusn DESC
//
如果发生了锁等待,我们可能更想知道是谁锁了表而引起谁的等待
以上的语句可以查询到谁锁了表,而谁在等待。
以上查询结果是一个树状结构,如果有子节点,则表示有等待发生。
如果想知道锁用了哪个回滚段,还可以关联到V$rollname,其中xidusn就是回滚段的USN

找出谁锁定的记录,kill掉就行了。

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

上一篇: SGA
下一篇: oracle锁
请登录后发表评论 登录
全部评论

注册时间:2008-12-26

  • 博文量
    29
  • 访问量
    54516