概述
SELECT
RPAD('+', LEVEL, '-')
|| SID
|| ' '
|| SESS.MODULE AS SESSION_LEVEL, --锁关系层级
SESS.INST_ID AS INST_ID , --会话实例
SID ,
SERIAL# ,
OSID ,
USERNAME ,
MACHINE ,
PROGRAM ,
SESS.SQL_ID AS SQL_ID ,
OBJECT_NAME ,
WAIT_EVENT_TEXT ,
IN_WAIT_SECS ,
NUM_WAITERS , --此会话阻塞的会话数
'SID:'
|| BLOCKER_SID
|| ','
|| BLOCKER_SESS_SERIAL#
|| ',@'
|| BLOCKER_INSTANCE AS BLK_INFO, --上级阻塞者
'SID:'
|| FINAL_BLOCKING_SESSION
|| ',@'
|| FINAL_BLOCKING_INSTANCE AS F_BLK_INFO, --最终阻塞者
'ALTER SYSTEM KILL SESSION '''
|| SID
|| ','
|| SERIAL#
|| ',@'
|| SESS.INST_ID
|| ''' IMMEDIATE;' AS KILL_SQL, ---杀锁会话
RPAD(' ', LEVEL)
|| SQL_TEXT SQL_TEXT --锁会话SQL
FROM
V$WAIT_CHAINS C
LEFT OUTER JOIN DBA_OBJECTS O
ON
(
ROW_WAIT_OBJ# = OBJECT_ID
)
JOIN GV$SESSION SESS USING (SID)
LEFT OUTER JOIN GV$SQL SQL
ON
(
SQL.SQL_ID = SESS.SQL_ID
AND SQL.CHILD_NUMBER = SESS.SQL_CHILD_NUMBER
)
CONNECT BY PRIOR SID = BLOCKER_SID
AND PRIOR SESS_SERIAL# = BLOCKER_SESS_SERIAL#
AND PRIOR INSTANCE = BLOCKER_INSTANCE START
WITH BLOCKER_IS_VALID = 'FALSE'
AND NUM_WAITERS <> 0;
最后
以上就是动人山水为你收集整理的Oracle数据库常用SQL之查询数据库中的锁情况的全部内容,希望文章能够帮你解决Oracle数据库常用SQL之查询数据库中的锁情况所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复