oracle查询block会话,oracle查询v$lock锁里面block和被block的sql_text

首先在三个窗口执行SQL,依次执行,后一个窗口涉及到前一个窗口中修改的表

68b91db8fd2c33b098bd7df46aef6ccb.png

0a3f0a7d2672ae38e571c7dc2fbae00f.png

8b8829acaf8ba39a30bec58d00e8105f.png

然后执行查询语句

---被阻塞事务的SQL

SELECT DISTINCT B.SID,

B.SERIAL#,

B.USERNAME,

B.MACHINE,

B.OSUSER,

B.PROGRAM,

A.MODULE,

TO_CHAR(B.LOGON_TIME, 'yyyy-mm-dd hh24:mi:ss'),

B.EVENT,

A.SQL_ID,

A.SQL_TEXT,

DECODE(C.REQUEST, 0, '', 'BLOCKED') BLOCKED,

DECODE(C.BLOCK, 0, '', 'BLOCKING') BLOCKING,

'alter system kill session ' || '''' || B.SID || ',' || B.SERIAL# || '''' || ';' AS FIX_SQL

FROM V$SQL A, V$SESSION B, V$LOCK C

WHERE C.TYPE = 'TX'

AND C.REQUEST <> 0

AND A.SQL_ID = B.SQL_ID

AND B.SID = C.SID

UNION ALL

--未提交或回滚的事务,有可能阻塞其他事务的SQL

SELECT DISTINCT ST.SID,

ST.SERIAL#,

ST.USERNAME,

ST.MACHINE,

ST.OSUSER,

ST.PROGRAM,

ST.MODULE,

TO_CHAR(ST.LOGON_TIME, 'yyyy-mm-dd hh24:mi:ss'),

ST.EVENT,

Q.SQL_ID,

Q.SQL_TEXT,

DECODE(L.REQUEST, 0, '', 'BLOCKED') BLOCKED,

DECODE(l.BLOCK, 0, '', 'BLOCKING') BLOCKING,

'alter system kill session ' || '''' || st.SID || ',' || SERIAL# || '''' || ';' AS FIX_SQL

FROM V$SQL Q,

v$lock l,

(SELECT S.SID,

S.SERIAL#,

S.USERNAME,

S.MACHINE,

S.OSUSER,

S.PROGRAM,

S.MODULE,

S.EVENT,

S.LOGON_TIME,

T.START_DATE

FROM V$SESSION S, V$TRANSACTION T

WHERE S.SADDR = T.SES_ADDR) ST

WHERE ST.START_DATE = Q.LAST_ACTIVE_TIME

and l.TYPE = 'TX'

and l.sid = st.sid

and l.block <> 0

AND REGEXP_LIKE(LOWER(SQL_TEXT),

(SELECT LISTAGG((LOWER(ALL_OBJECTS.OBJECT_NAME)), '|') WITHIN GROUP(ORDER BY OBJECT_NAME)

FROM V$LOCKED_OBJECT, ALL_OBJECTS

WHERE V$LOCKED_OBJECT.OBJECT_ID = ALL_OBJECTS.OBJECT_ID));

可以看到被block的SQL和block其他事务的事务的SQL

39590279036ae57f724124062a95c87b.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值