session阻塞分析

今天接到现场报告,项目中一个功能没法进行,现场为打开页面的时候卡主。初步分析是有表被锁住。VPN连接现场数据库查询:
select * from v$locked_object
果然后很多表被锁住的记录

接着
select * from v$lock where block = 1
发现主要有5个session阻塞了其他session


接着再查询:
select t2.sid, t2.blocking_session, level from v$session t2 connect by t2.sid = prior t2.blocking_session
   

发现1058这个session为罪魁祸首。
在看看1058在干什么
select * from v$session t2 where t2.sid = 1058


结果发现:
   

1058的状态为inactive!!.而且上条执行的sql为一条查询语句。可以判断该session在本事务的改查询前做了其他更新操作而没有提交或回滚,导致表锁住。

最后杀掉该session.系统恢复正常。
请使用浏览器的分享功能分享到微信等