2026-03-12 20:23:15
This commit is contained in:
118
vg/locks_blocking_new.sql
Normal file
118
vg/locks_blocking_new.sql
Normal file
@@ -0,0 +1,118 @@
|
||||
@@header
|
||||
|
||||
/*
|
||||
|
||||
Author : Vishal Gupta
|
||||
Purpose : Displays blocking locks in database
|
||||
|
||||
* Revision History:
|
||||
* ===================
|
||||
* Date Author Description
|
||||
* --------- ------------ --------------------------------------------------------
|
||||
* 19-Oct-12 Vishal Gupta Added ClientProcess in output and changed column sizing
|
||||
* 18-Apr-12 Vishal Gupta Replace with gv$session with materialize hinted
|
||||
* sub-query factoring (CTE - common table extression)
|
||||
* 27-Feb-12 Vishal Gupta Created
|
||||
*
|
||||
*/
|
||||
|
||||
PROMPT
|
||||
PROMPT *********************************
|
||||
PROMPT * B L O C K I N G L O C K S
|
||||
PROMPT *********************************
|
||||
PROMPT
|
||||
|
||||
COLUMN INST_ID HEADING "I#" FORMAT 99
|
||||
COLUMN SID FORMAT a40
|
||||
COLUMN username HEADING "UserName" FORMAT a20 TRUNC
|
||||
COLUMN lock_type HEADING "Lock|type" FORMAT a4 TRUNC
|
||||
COLUMN lock_Name HEADING "Lock Name" FORMAT a22 TRUNC
|
||||
COLUMN osuser HEADING "OSUser" FORMAT a20 TRUNC
|
||||
COLUMN machine HEADING "Client|Machine" FORMAT a20 TRUNC
|
||||
COLUMN process HEADING "Client|Process" FORMAT a10
|
||||
COLUMN program HEADING "Program" FORMAT a30 TRUNC
|
||||
COLUMN event HEADING "Event" FORMAT a30 TRUNC
|
||||
|
||||
|
||||
--
|
||||
----
|
||||
---- Need to use Subquery for gv$session, otherwise session is disconnected with
|
||||
---- ORA-07445 [qksopCheckPropOpt] when joining dynamic performance views in heirarichal query.
|
||||
----
|
||||
--WITH sess as
|
||||
-- ( select /*+ RULE NO_MERGE */ s1.* from gv$session s1
|
||||
-- )
|
||||
--, locks as
|
||||
-- (select /*+ RULE NO_MERGE */ *
|
||||
-- from gv$lock where lmode = 0
|
||||
-- --AND ( lmode = 0 OR (lmode > 0 AND block > 0))
|
||||
-- )
|
||||
--SELECT /*+ RULE */
|
||||
-- s.inst_id
|
||||
-- , DECODE(level
|
||||
-- ,1 , s.sid || ' (Blocker)'
|
||||
-- , ' ' || LPAD('-',(level-1)*4,'|---') || '> ' || s.sid
|
||||
-- )
|
||||
-- sid
|
||||
-- , s.status
|
||||
-- , lt.name lock_name
|
||||
-- , s.username
|
||||
-- , s.osuser
|
||||
-- , s.sql_id
|
||||
-- , s.process
|
||||
-- , s.program
|
||||
-- , s.event
|
||||
--FROM sess s
|
||||
-- LEFT OUTER JOIN locks l ON l.inst_id = s.inst_id AND l.sid = s.sid
|
||||
-- LEFT OUTER JOIN v$lock_type lt ON l.type = lt.type
|
||||
--WHERE ( s.blocking_session IS NOT NULL
|
||||
-- OR exists (select 1 from sess s2 where s2.blocking_instance = s.inst_id and s2.blocking_session = s.sid)
|
||||
-- )
|
||||
--CONNECT BY PRIOR s.inst_id = s.blocking_instance
|
||||
-- AND PRIOR s.sid = s.blocking_session
|
||||
--START WITH s.blocking_session IS NULL
|
||||
--;
|
||||
|
||||
SELECT l.inst_id, DECODE(l.request,0,'Holder ','---> Waiter ')|| l.sid sid,l.id1, l.id2, l.lmode, l.request, lt.name, l.CTIME, l.BLOCK
|
||||
, s.username
|
||||
FROM gV$LOCK l
|
||||
, gv$session s
|
||||
, gv$lock_type lt
|
||||
WHERE l.inst_id = s.inst_id
|
||||
AND l.sid = s.sid
|
||||
AND l.addr = s.
|
||||
AND l.type = lt.type
|
||||
AND (l.id1, l.id2, l.type) IN (SELECT l2.id1, l2.id2, l2.type FROM gV$LOCK l2 WHERE l2.request>0)
|
||||
ORDER BY l.id1, l.request;
|
||||
|
||||
|
||||
SELECT s.inst_id
|
||||
, DECODE(level
|
||||
,1 , s.sid || ' (Blocker)'
|
||||
, ' ' || LPAD('-',(level-1)*4,'|---') || '> ' || s.sid
|
||||
)
|
||||
, s.blocking_session
|
||||
, s.blocking_instance
|
||||
, s.final_blocking_session
|
||||
, s.final_blocking_instance
|
||||
, s.status
|
||||
-- , lt.name lock_name
|
||||
, s.username
|
||||
, s.osuser
|
||||
, s.sql_id
|
||||
, s.process
|
||||
, s.program
|
||||
, s.event
|
||||
FROM gv$session s
|
||||
, gv$lock l
|
||||
, gv$lock_type lt
|
||||
WHERE s.inst_id = l.inst_id
|
||||
AND s.sid = l.sid
|
||||
AND l.type = lt.type
|
||||
START WITH s.blocking_session is null
|
||||
CONNECT BY NOCYCLE
|
||||
PRIOR s.inst_id = s.blocking_instance
|
||||
AND s.sid = s.blocking_session
|
||||
;
|
||||
|
||||
@@footer
|
||||
Reference in New Issue
Block a user