数据库
首页 > 数据库> > 【DB笔试面试698】在Oracle中,如何查看某一个会话是否被其它会话阻塞?

【DB笔试面试698】在Oracle中,如何查看某一个会话是否被其它会话阻塞?

作者:互联网

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

题目部分

在Oracle中,如何查看某一个会话是否被其它会话阻塞?

     

答案部分

SQL语句如下所示:

1SELECT A.BLOCKING_SESSION_STATUS,
2        A.BLOCKING_INSTANCE,
3        A.BLOCKING_SESSION,
4        A.EVENT
5  FROM GV$SESSION A
6 WHERE A.SID = 1070;

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

由上图可知,1070会话被2号实例上的970会话阻塞。

BLOCKING_SESSION_STATUS

VARCHAR2(11)

标识当前会话是否被阻塞。VALID表示当前会话被阻塞,可以通过BLOCKING_INSTANCE和 BLOCKING_SESSION列查找到阻塞会话;“NO HOLDER”表示没有被阻塞;“NOT IN WAIT”表示当前会话未等待;UNKNOWN表示未知。

BLOCKING_INSTANCE

NUMBER

当BLOCKING_SESSION_STATUS的值为VALID时,该列表示阻塞会话的实例号(Instance Number)。

BLOCKING_SESSION

NUMBER

当BLOCKING_SESSION_STATUS的值为VALID时,该列表示阻塞会话的SID。


标签:STATUS,698,DB,阻塞,VALID,会话,SESSION,BLOCKING
来源: https://blog.51cto.com/lhrbest/2707538