ITPub博客

首页 > 数据库 > Oracle > 查询锁等待情况

查询锁等待情况

原创 Oracle 作者:pxbibm 时间:2014-12-16 15:00:55 0 删除 编辑
 如果发生了锁等待,我们可能更想知道是谁锁了表而引起谁的等待
以下的语句可以查询到谁锁了表,而谁在等待。
以上查询结果是一个树状结构,如果有子节点,则表示有等待发生。
如果想知道锁用了哪个回滚段,还可以关联到V$rollname,其中xidusn就是回滚段的USN.
可以使用下面的SQL查看锁的情况。
SELECT   LPAD (' ', DECODE (l.xidusn, 0, 3, 0)) || l.oracle_username
              user_name,
           o.owner,
           o.object_name,
           o.object_type,
           s.sid,
           s.serial#,
           s.LOGON_TIME
    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 ,s.LOGON_TIME asc

和锁相关的表
--以下几个为相关表
SELECT * FROM v$lock;
SELECT * FROM v$sqlarea;
SELECT * FROM v$session;
SELECT * FROM v$process ;
SELECT * FROM v$locked_object;
SELECT * FROM all_objects;
SELECT * FROM v$session_wait;
--kill session语句
alter system kill session'sid,serial#';

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

请登录后发表评论 登录
全部评论
【DBAplus社群】联合发起人。ACOUG核心成员,Oracle用户组年轻专家。熟悉Oracle的体系结构,擅长Oracle数据库架构规划、SQL优化、OWI方面性能的优化。曾服务于航天、航空、机车、大型制造行业数据库的维护以及系统开发工作,开发过基于Oracle数据库的大型ERP系统。
  • 博文量
    341
  • 访问量
    2469814