概述
先看一个数据库监控图:
![6b1915a772a34f536506e2e130ff2e95.png](https://img-blog.csdnimg.cn/img_convert/6b1915a772a34f536506e2e130ff2e95.png)
这上面的信息中,怎么判断XX会话被另一个会话堵塞呢?
如果用网上的判断死锁sql去查询,类似如下:
![194b90aa1cfd28072e02994d1671f23b.png](https://img-blog.csdnimg.cn/img_convert/194b90aa1cfd28072e02994d1671f23b.png)
![4ac700f11af1653933bd419ff7e133e4.png](https://img-blog.csdnimg.cn/img_convert/4ac700f11af1653933bd419ff7e133e4.png)
思考了一段时间,决定从gv$session入手,下面先看第一条sql
1、查看活动会话信息
--查看活动会话信息SELECT INST_ID, SID, SERIAL#, PROCESS, USERNAME, LOCKWAIT, SCHEMANAME, OSUSER, MACHINE, PROGRAM, SQL_ID, MODULE, ACTION, LOGON_TIME, BLOCKING_SESSION_STATUS, BLOCKING_INSTANCE, BLOCKING_SESSION, EVENT, WAIT_CLASS, SECONDS_IN_WAIT, STATE FROM GV$SESSION WHERE USERNAME IS NOT NULL AND STATUS = 'ACTIVE' ORDER BY LOGON_TIME, SID;
![bf01cbf9778765c4a257d39ff37b3fae.png](https://img-blog.csdnimg.cn/img_convert/bf01cbf9778765c4a257d39ff37b3fae.png)
2、查看当前被阻塞lock信息(waiter)
--注: 如果state值为Waiting,那么wait_time值无用。Second_in_wait值是实际的等待时间(单位:秒)。--如果state值为Wait unknow time,那么wait_time值和Second_in_wait值都无用。--如果state值为Wait short time,那么wait_time值和Second_in_wait值都无用。--如果state值为Waiting known time,那么wait_time值就是实际等待时间(单位:秒),Second_in_wait值无用。SELECT INST_ID "实例ID