【DB筆試面試698】在Oracle中,如何查看某一個會話是否被其它會話阻塞?

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

♣          題目         部分

在Oracle中,如何查看某一個會話是否被其它會話阻塞?ide


     
♣          答案部分          



SQL語句以下所示:spa

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會話阻塞。blog

BLOCKING_SESSION_STATUSit

VARCHAR2(11)table

標識當前會話是否被阻塞。VALID表示當前會話被阻塞,能夠經過BLOCKING_INSTANCE和 BLOCKING_SESSION列查找到阻塞會話;「NO HOLDER」表示沒有被阻塞;「NOT IN WAIT」表示當前會話未等待;UNKNOWN表示未知。class

BLOCKING_INSTANCEim

NUMBERmargin

當BLOCKING_SESSION_STATUS的值爲VALID時,該列表示阻塞會話的實例號(Instance Number)。top

BLOCKING_SESSIONimg

NUMBER

當BLOCKING_SESSION_STATUS的值爲VALID時,該列表示阻塞會話的SID。

相關文章
相關標籤/搜索