--第一种方式:
--查询当前的活动会话,其中lockwait列不为空,表示会话正在等待一把锁
select * from v$session where v$session."STATUS" = 'ACTIVE' and v$session."USERNAME" = 'SHANGHAI';
--lockwait对应v$lock的kaddr列,表示锁的地址
select * from v$lock where v$lock."KADDR" = '000007FFDA22EC18';
--查询该锁的锁定记录,其中request为0表示是制造锁定的会话插入的记录
select * from v$lock where v$lock."ID1" in ('327688') and request = 0;
--根据v$lock的sid查询制造锁的会话
select v$session."sql_ID",v$session.* from v$session where v$session."SID" = '2279';
--查询该会话正在执行或者执行过的sql
select * from v$sqltext where v$sqltext."sql_ID" = '5f282d2hp03k5' order by v$sqltext."PIECE" asc;
--第二种方式:
select v$session."SID",v$session."BLOCKING_SESSION",v$session."BLOCKING_SESSION_STATUS",v$session."STATUS"
from v$session
where v$session."USERNAME" = 'SHANGHAI';
总结
以上是编程之家为你收集整理的查询oracle会话间的阻塞情况全部内容,希望文章能够帮你解决查询oracle会话间的阻塞情况所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。