Oracle会话阻塞

本文探讨了Oracle数据库中会话阻塞的问题,包括单实例和集群环境下的情况。通过模拟232会话被1224会话阻塞的示例,解释了v$lock视图中lock模式、请求模式和阻塞状态的含义。同时,提供了查询集群会话阻塞和历史等待会话信息的方法。
摘要由CSDN通过智能技术生成
单实例的会话阻塞

模拟232会话被1224会话阻塞的情况

 select * from V$SESSION_BLOCKERS;
       SID SESS_SERIAL#    WAIT_ID WAIT_EVENT WAIT_EVENT_TEXT                BLOCKER_INSTANCE_ID BLOCKER_SID BLOCKER_SESS_SERIAL#
---------- ------------ ---------- ---------- ------------------------------ ------------------- ----------- --------------------
       232        14127         24        241 enq: TX - row lock contention                    1        1224                 3975 
会话1224所持有的锁阻塞了会话232执行的SQL语句。
1224 会话是阻塞者
232会话是等待者  

SYS > select sid,
    BLOCKING_SESSION ,
    event,seconds_in_wait from v$session where username='SCOTT';

       SID BLOCKING_SESSION EVENT                          SECONDS_IN_WAIT
---------- ---------------- ------------------------------ ---------------
       232             1224 enq: TX - row lock contention             1077      # 会话232等待行锁等待了1077秒
      1224                  SQL*Net message from client                170
232受阻塞会话等待的对象,等待的数据块号

 select row_wait_obj#, 
 row_wait_file#, 
 row_wait_block#,
 row_wait_row# 
 from v$session where sid=232;

ROW_WAIT_OBJ# ROW_WAIT_FILE# ROW_WAIT_BLOCK# ROW_WAIT_ROW#
------------- -------------- --------------- -------------
        97896           1024          106534             9	
阻塞等待对象的详细信息

select owner, object_type, 
object_name, 
data_object_id 
from dba_objects where object_id=97896;
OWNER      OBJECT_TYP OBJECT_NAM DATA_OBJECT_ID
---------- ---------- ---------- --------------
SCOTT      TABLE      EMP                 97896
查看阻塞行的具体信息,需要对象号、文件号、块号和行号来生成rowid

select * from scott.emp
where rowid=dbms_rowid.rowid_create (rowid_type => 1, object_number => 97896, relative_fno => 1024 ,block_number =>106534, row_number => 9);
查询DML死锁会话sid,及引起死锁的堵塞者会话blocking_session

SELECT sid,event,seq#,p1,p1raw,p2,p3 FROM v$session WHERE wait_time=0;
如果正在等待,wait_time的值为0。如果已经完成,wait就不等于0. 使用wait_time来断言你是否找到潜在被阻塞的会话。

v$lock视图中,lmode代表会话持有锁的锁模式,request代表会话等待请求锁的锁模式,block=2代表R

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值