2026-03-12 20:23:15
This commit is contained in:
167
vg/parallel_session.sql
Normal file
167
vg/parallel_session.sql
Normal file
@@ -0,0 +1,167 @@
|
||||
@@header
|
||||
|
||||
/*
|
||||
*
|
||||
* Author : Vishal Gupta
|
||||
* Purpose : Display Session Hierarchy
|
||||
* Parameters : 1 - SID (Use % as wildcard)
|
||||
* : 2 - INST_ID (Use % as wildcard)
|
||||
*
|
||||
* Revision History:
|
||||
* ===================
|
||||
* Date Author Description
|
||||
* --------- ------------ -----------------------------------------
|
||||
* 20-Apr-12 Vishal Gupta Created
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/************************************
|
||||
* INPUT PARAMETERS
|
||||
************************************/
|
||||
UNDEFINE SID
|
||||
UNDEFINE INST_ID
|
||||
UNDEFINE WHERE_CLAUSE
|
||||
|
||||
DEFINE SID="&&1"
|
||||
DEFINE INST_ID="&&2"
|
||||
DEFINE WHERE_CLAUSE="&3"
|
||||
|
||||
|
||||
COLUMN _SID NEW_VALUE SID NOPRINT
|
||||
COLUMN _INST_ID NEW_VALUE INST_ID NOPRINT
|
||||
|
||||
set term off
|
||||
SELECT DECODE('&&SID','','%','&&SID') "_SID"
|
||||
, DECODE('&&INST_ID','','%','&&INST_ID') "_INST_ID"
|
||||
FROM DUAL;
|
||||
set term on
|
||||
|
||||
PROMPT **************************************************************
|
||||
PROMPT * P A R A L L E L S E S S I O N S H I E R A R C H Y
|
||||
PROMPT *
|
||||
PROMPT * Input Parameters
|
||||
PROMPT * - SID = "&&SID"
|
||||
PROMPT * - Instance# = "&&INST_ID"
|
||||
PROMPT * - Where Clause = "&&WHERE_CLAUSE"
|
||||
PROMPT **************************************************************
|
||||
|
||||
set pages 50000
|
||||
|
||||
COLUMN INST_ID HEADING "I#" FORMAT 99
|
||||
COLUMN SID HEADING "SID|(Hierarchy)" FORMAT a15
|
||||
COLUMN serial# HEADING "Serial#" FORMAT 99999
|
||||
COLUMN SPID FORMAT a6
|
||||
COLUMN QCINST_ID HEADING "Parent|I#" FORMAT 99
|
||||
COLUMN QCSID HEADING "Parent|SID" FORMAT 9999
|
||||
COLUMN qcserial# HEADING "Parent|Serial#" FORMAT 99999
|
||||
COLUMN server_hierarchy HEADING "Parallel|ServerSet|Hierarchy" FORMAT a10
|
||||
COLUMN server_group HEADING "Server|Group" FORMAT 99
|
||||
COLUMN server_set HEADING "Server|Set" FORMAT 99
|
||||
COLUMN server# HEADING "Server#" FORMAT 99
|
||||
COLUMN degree HEADING "Deg" FORMAT 999
|
||||
COLUMN req_degree HEADING "Req|Deg" FORMAT 999
|
||||
COLUMN slave_status HEADING "Slave|Status" FORMAT a10
|
||||
COLUMN status HEADING "Session|Status" FORMAT a8
|
||||
COLUMN service_name FORMAT a22
|
||||
COLUMN username FORMAT a20
|
||||
COLUMN last_call_et HEADING "LastCall" FORMAT a12 JUSTIFY RIGHT
|
||||
COLUMN logon_time FORMAT a15
|
||||
COLUMN process FORMAT a15
|
||||
COLUMN osuser FORMAT a10 TRUNCATE
|
||||
COLUMN machine FORMAT a30
|
||||
COLUMN program FORMAT a15 TRUNCATE
|
||||
COLUMN server_name FORMAT a15 TRUNCATE
|
||||
COLUMN sql_text FORMAT a150
|
||||
COLUMN sql_child_number HEADING "SQL|C#" FORMAT 99
|
||||
COLUMN event FORMAT a30 TRUNCATE
|
||||
|
||||
BREAK ON server_group ON server_set ON server#
|
||||
|
||||
WITH parallel_sessions AS
|
||||
(
|
||||
SELECT pxs.inst_id
|
||||
, pxs.sid
|
||||
, pxs.serial#
|
||||
, pxs.qcinst_id
|
||||
, pxs.qcsid
|
||||
, pxs.qcserial#
|
||||
, pxs.degree
|
||||
, pxs.req_degree
|
||||
, pxp.server_name
|
||||
, pxs.server_group
|
||||
, pxs.server_set
|
||||
, pxs.server#
|
||||
, pxp.status
|
||||
FROM gv$px_session pxs
|
||||
, gv$px_process pxp
|
||||
WHERE pxs.inst_id = pxp.inst_id (+)
|
||||
AND pxs.sid = pxp.sid (+)
|
||||
AND pxs.serial# = pxp.serial# (+)
|
||||
ORDER BY pxs.qcinst_id NULLS FIRST
|
||||
, pxs.qcsid
|
||||
, pxs.qcserial#
|
||||
, pxs.inst_id
|
||||
, pxs.sid
|
||||
, pxs.serial#
|
||||
, pxs.server_group
|
||||
, pxs.server_set
|
||||
, pxs.server#
|
||||
)
|
||||
SELECT DECODE(level,1, '' , ' ')
|
||||
|| LPAD('> ',(level-1)*5,'|--')
|
||||
|| pxs.sid sid
|
||||
, pxs.inst_id
|
||||
, p.spid
|
||||
--, NVL(pxs.qcinst_id,pxs.inst_id) qcinst_id
|
||||
--, pxs.qcsid
|
||||
--, pxs.qcserial#
|
||||
, pxs.req_degree
|
||||
, pxs.degree
|
||||
, LPAD(DECODE(pxs.server#, 1, TO_CHAR(pxs.server_group), ' '),2)
|
||||
|| ' '
|
||||
|| LPAD(DECODE(pxs.server#, 1, TO_CHAR(pxs.server_set), ' '),2)
|
||||
|| ' '
|
||||
|| LPAD(pxs.server#,2) server_hierarchy
|
||||
--, pxs.server_group
|
||||
--, pxs.server_set
|
||||
--, pxs.server#
|
||||
, pxs.status slave_status
|
||||
, s.status
|
||||
, LPAD(DECODE(FLOOR(s.last_call_et / 3600),0, '', FLOOR(s.last_call_et / 3600) || 'h ' )
|
||||
|| LPAD(FLOOR(MOD(s.last_call_et , 3600 ) / 60),2) || 'm '
|
||||
|| LPAD(MOD(s.last_call_et, 60 ) ,2) || 's'
|
||||
, 12
|
||||
) last_call_et
|
||||
, TO_CHAR(s.LOGON_TIME,'DD-MON-YY HH24:MI') logon_time
|
||||
, s.service_name
|
||||
, s.username
|
||||
, s.osuser
|
||||
, DECODE(level,1, '' ,LPAD('> ',((level-1)*3)+2,'|--') )
|
||||
|| NVL2(pxs.qcinst_id,pxs.server_name || ' I#' || pxs.inst_id , s.program)
|
||||
program
|
||||
, s.sql_id
|
||||
, s.sql_child_number
|
||||
, s.event
|
||||
FROM parallel_sessions pxs
|
||||
LEFT OUTER JOIN gv$session s ON s.inst_id = pxs.inst_id
|
||||
AND s.sid = pxs.sid
|
||||
AND s.serial# = pxs.serial#
|
||||
LEFT OUTER JOIN gv$process p ON p.inst_id = s.inst_id
|
||||
AND p.addr = s.paddr
|
||||
WHERE NVL(pxs.qcinst_id,pxs.inst_id) LIKE '&&INST_ID'
|
||||
AND pxs.qcsid LIKE '&&SID'
|
||||
&&WHERE_CLAUSE
|
||||
CONNECT BY NOCYCLE PRIOR pxs.inst_id = NVL(pxs.qcinst_id,pxs.inst_id)
|
||||
AND PRIOR pxs.sid = pxs.qcsid
|
||||
AND PRIOR pxs.serial# = pxs.qcserial#
|
||||
START WITH pxs.qcinst_id IS NULL
|
||||
ORDER BY NVL(pxs.qcinst_id,pxs.inst_id)
|
||||
, pxs.qcsid NULLS FIRST
|
||||
, pxs.qcserial# NULLS FIRST
|
||||
, pxs.server_group NULLS FIRST
|
||||
, pxs.server_set NULLS FIRST
|
||||
, pxs.server# NULLS FIRST
|
||||
;
|
||||
|
||||
@@footer
|
||||
Reference in New Issue
Block a user