oracle查看阻塞的sql,ORACLE查询系统中阻塞情况~

在ORACLE中经常会碰到阻塞的情况发生,这个时候我们就需要快速的找出导致阻塞的原因,并尽快排除它,好让系统重新正常运行。

下面以死锁为例,来看看如何找出导致阻塞的会话并解决问题。

//SCOTT窗口1

SQL> select * from t2;

ID

----------

3

1

2

SQL> update t2 set id=12 where id=2;

1 row updated.

SQL>

//SCOTT窗口2

SQL> select * from t2;

ID

----------

3

1

2

SQL> update t2 set id=11 where id=3;

已更新 1 行。

SQL> update t2 set id=13 where id=2;

//此时进入等待……卡住不动了

//SYS窗口

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

||','||d.serial# block_msg, a.block

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

3 where a.id1=b.id1

4 and a.id2=b.id2

5 and a.block>0

6 and a.sid <>b.sid

7 and a.sid=c.sid

8 and b.sid=d.SID

9 ;

BLOCK_MSG BLOCK

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

HWANG ('138,305') is blocking 153,15 1

SQL> select sid,serial#,username from v$session where username is not null;

SID SERIAL# USERNAME

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

136 179 SYS

138 305 SCOTT

153 15 SCOTT

//这个时候可以杀掉那个BLOCKER

SQL> alter system kill session'138,305';

System altered.

//SCOTT窗口1

SQL> select * from t2;

select * from t2

*

ERROR at line 1:

ORA-00028: your session has been killed

SQL>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值