查询oracle会话间的阻塞情况

本文介绍两种查询Oracle数据库中锁的方法,帮助定位会话间的阻塞情况。第一种方法通过查看活动会话及其等待的锁来确定阻塞源;第二种方法直接查询被阻塞的会话及其状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--第一种方式:
 --查询当前的活动会话,其中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';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值