oracle查看阻塞的sql,Oracle阻塞(锁等待)查询

Oracle阻塞(锁等待)查询

主要查询v$lock、v$session视图。

v$lock中的id1,id2为锁定的对象标识,block为阻塞数目。脚本show_blocker.sql相关代码如下:

col block_msg for a80

select c.terminal||' ('''||a.sid||','||c.serial#||''') is blocking '||b.sid block_msg

from v$lock a,v$lock b,v$session c

where a.id1=b.id1

and a.id2=b.id2

and a.block>0

and a.sid<>b.sid

and a.sid=c.sid

;

模拟场景:开3个session,

session1做更新,不提交。

session2做相同行的更新,将会被阻塞。

session3执行脚本观察结果。

session1:

A NAME       ADDRESS

---------- ---------- --------------------

1 chennan

已选择 1 行。

update">chennan@cwgl94>update t set address='my address' where a=1;

已更新 1 行。

A NAME       ADDRESS

---------- ---------- --------------------

1 chennan    my address

已选择 1 行。

session2:

A NAME       ADDRESS

---------- ---------- --------------------

1 chennan

已选择 1 行。

update">chennan@cwgl94>update t set address='test' where a=1;

[  一直阻塞 ...]

session3:

select">chennan@cwgl94>select sid,serial#,terminal from v$session;

SID    SERIAL# TERMINAL

---------- ---------- ----------------

1          1 CHENNAN

2          1 CHENNAN

3          1 CHENNAN

4          1 CHENNAN

5          1 CHENNAN

6          1 CHENNAN

7          1 CHENNAN

8          1 CHENNAN

9        204 CHENNAN

10       2590 CHENNAN

11       1480 CHENNAN

已选择11行。

BLOCK_MSG

-----------------------------------------------------------

CHENNAN ('11,1480') is blocking 10

已选择 1 行。

-- The End --

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值