oracle9i阻塞,Oracle10g中阻塞锁查询更简单

这篇博客探讨了数据库中出现的阻塞问题,通过查询GV$SESSION和DBA_OBJECTS等视图,详细展示了如何定位并分析阻塞的会话信息,包括阻塞和被阻塞的会话ID、SCHEMA、MODULE、STATUS以及涉及的对象和ROWID。同时,提供了被阻塞数据的查询SQL,帮助理解阻塞的具体情况。
摘要由CSDN通过智能技术生成

Select '节点 ' || a_s.INST_ID || ' session ' || a_s.sid || ',' || a_s.SERIAL# ||

' 阻塞了 节点 ' || b_s.INST_ID || ' session ' || b_s.SID || ',' ||

b_s.SERIAL# blockinfo,

a_s.INST_ID,

a_s.SID,

a_s.SCHEMANAME,

a_s.MODULE,

a_s.STATUS,

'后为被阻塞信息',

b_s.INST_ID blocked_inst_id,

b_s.SID blocked_sid,

b_s.SCHEMANAME blocked_SCHEMANAME,

b_s.EVENT blocked_event,

b_s.MODULE blocked_module,

b_s.STATUS blocked_status,

b_s.SQL_ID blocked_sql_id,

obj.owner blocked_owner,

obj.object_name blocked_object_name,

obj.OBJECT_TYPE blocked_OBJECT_TYPE,

case

when b_s.ROW_WAIT_OBJ# <> -1 then

dbms_rowid.rowid_create(1,

obj.DATA_OBJECT_ID,

b_s.ROW_WAIT_FILE#,

b_s.ROW_WAIT_BLOCK#,

b_s.ROW_WAIT_ROW#)

else

'-1'

end blocked_rowid, --被阻塞数据的rowid

decode(obj.object_type,

'TABLE',

'select * from ' || obj.owner || '.' || obj.object_name ||

' where rowid=''' ||

dbms_rowid.rowid_create(1,

obj.DATA_OBJECT_ID,

b_s.ROW_WAIT_FILE#,

b_s.ROW_WAIT_BLOCK#,

b_s.ROW_WAIT_ROW#) || '''',

NULL) blocked_data_querysql

from gv$session a_s, gv$session b_s, dba_objects obj

where b_s.BLOCKING_INSTANCE is not null

and b_s.BLOCKING_SESSION is not null

and a_s.INST_ID = b_s.BLOCKING_INSTANCE

and a_s.SID = b_s.BLOCKING_SESSION

and b_s.ROW_WAIT_OBJ# = obj.object_id(+)

order by a_s.inst_id, a_s.sid

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值