2026-03-12 20:23:15
This commit is contained in:
198
vg/piddetails.sql
Normal file
198
vg/piddetails.sql
Normal file
@@ -0,0 +1,198 @@
|
||||
@@header
|
||||
|
||||
/*
|
||||
*
|
||||
* Author : Vishal Gupta
|
||||
* Purpose : Display Session Details
|
||||
* Parameters : 1 - SPID (OS Process ID)
|
||||
* 2 - INST_ID (optional, default to 1)
|
||||
*
|
||||
* Revision History:
|
||||
* ===================
|
||||
* Date Author Description
|
||||
* --------- ------------ -----------------------------------------
|
||||
* 05-Aug-04 Vishal Gupta First Draft
|
||||
*/
|
||||
|
||||
|
||||
COLUMN INST_ID HEADING "I#" FORMAT 99
|
||||
COLUMN SPID FORMAT 99999
|
||||
COLUMN SID FORMAT 9999
|
||||
COLUMN serial# HEADING "Serial#" FORMAT 99999
|
||||
COLUMN username FORMAT a20
|
||||
COLUMN osuser FORMAT a10
|
||||
COLUMN machine FORMAT a20
|
||||
COLUMN logon_time FORMAT a15
|
||||
COLUMN service_name FORMAT a21
|
||||
COLUMN program FORMAT a20
|
||||
COLUMN process FORMAT a10
|
||||
COLUMN last_call_et HEADING "Last|Call|(s)" FORMAT 99,999
|
||||
|
||||
|
||||
VARIABLE PID NUMBER
|
||||
VARIABLE INST_ID NUMBER
|
||||
|
||||
BEGIN
|
||||
:PID := &&1;
|
||||
:INST_ID := NVL(&2,1);
|
||||
IF :INST_ID = '' OR :INST_ID IS NULL THEN
|
||||
:INST_ID := 1;
|
||||
END IF;
|
||||
END;
|
||||
/
|
||||
|
||||
Prompt
|
||||
Prompt ################ Process Details ######################
|
||||
Prompt
|
||||
|
||||
select LPAD(p.sPID,5,' ') SPID
|
||||
, s.SID
|
||||
, s.SERIAL#
|
||||
, s.process
|
||||
, s.username
|
||||
, s.osuser
|
||||
, s.status
|
||||
, CASE
|
||||
WHEN s.status = 'ACTIVE' THEN s.last_call_et
|
||||
ELSE NULL
|
||||
END last_call_et
|
||||
, TO_CHAR(s.LOGON_TIME,'DD-MM-YY HH24:MI') logon_time
|
||||
, s.MACHINE
|
||||
, s.PROGRAM
|
||||
from gv$session s, gv$process p
|
||||
where s.inst_id = p.inst_id
|
||||
AND s.PADDR = p.ADDR
|
||||
AND p.spid = :PID
|
||||
AND p.inst_id = :INST_ID
|
||||
order by 1;
|
||||
|
||||
Prompt
|
||||
Prompt ###### Session Lock Information ############
|
||||
Prompt
|
||||
|
||||
select s.blocking_instance
|
||||
, s.blocking_session
|
||||
, s.blocking_session_status
|
||||
, s.final_blocking_instance
|
||||
, s.final_blocking_session
|
||||
, s.final_blocking_session_status
|
||||
FROM gv$session s, gv$process p
|
||||
where s.inst_id = p.inst_id
|
||||
AND s.PADDR = p.ADDR
|
||||
AND p.spid = :PID
|
||||
AND p.inst_id = :INST_ID
|
||||
order by 1;
|
||||
|
||||
|
||||
|
||||
Prompt
|
||||
Prompt ####### Current SQL being executed #########
|
||||
Prompt
|
||||
|
||||
SELECT sql.sql_text
|
||||
FROM gv$sqltext_with_newlines sql, gv$session s, gv$process p
|
||||
WHERE s.inst_id = sql.inst_id
|
||||
AND s.SQL_ADDRESS = sql.address
|
||||
AND s.SQL_HASH_VALUE = sql.hash_value
|
||||
AND s.inst_id = p.inst_id
|
||||
AND s.PADDR = p.ADDR
|
||||
AND p.spid = :PID
|
||||
AND p.inst_id = :INST_ID
|
||||
order by piece
|
||||
/
|
||||
|
||||
|
||||
Prompt
|
||||
Prompt ################ Session Wait ######################
|
||||
Prompt
|
||||
|
||||
COLUMN state FORMAT a10
|
||||
COLUMN event HEAD "EventName" FORMAT a35
|
||||
COLUMN seconds_in_wait HEADING "Wait(s)" FORMAT 99,999
|
||||
COLUMN p1 FORMAT 9999999999
|
||||
COLUMN p2 FORMAT 9999999999
|
||||
COLUMN p3 FORMAT 9999999999
|
||||
COLUMN p1text FORMAT a20
|
||||
COLUMN p2text FORMAT a20
|
||||
COLUMN p3text FORMAT a20
|
||||
|
||||
|
||||
SELECT w.inst_id
|
||||
, w.sid
|
||||
, w.seq#
|
||||
, w.state
|
||||
, w.event
|
||||
, w.seconds_in_wait
|
||||
, w.p1
|
||||
, w.p1text
|
||||
, w.p2
|
||||
, w.p2text
|
||||
, w.p3
|
||||
, w.p3text
|
||||
FROM gv$session_wait w, gv$session s, gv$process p
|
||||
WHERE s.inst_id = p.inst_id
|
||||
AND s.PADDR = p.ADDR
|
||||
AND w.inst_id = s.inst_id
|
||||
AND w.sid = s.sid
|
||||
AND p.spid = :PID
|
||||
AND p.inst_id = :INST_ID
|
||||
/
|
||||
|
||||
|
||||
Prompt
|
||||
Prompt ####### Session Events ####################
|
||||
Prompt
|
||||
|
||||
COLUMN event HEAD "EventName" FORMAT a35
|
||||
COLUMN total_waits HEAD "TotalWaits"
|
||||
COLUMN total_timeouts HEAD "TotalTimeOuts"
|
||||
COLUMN time_waited HEAD "TimeWaited (s)"
|
||||
COLUMN average_wait HEAD "AvgWait (s)"
|
||||
COLUMN max_wait HEAD "MaxWait (s)"
|
||||
|
||||
SELECT e.inst_id
|
||||
, e.sid
|
||||
, e.event
|
||||
, e.total_waits
|
||||
, e.total_timeouts
|
||||
, e.time_waited / 100 time_waited
|
||||
, e.average_wait / 100 average_wait
|
||||
, e.max_wait / 100 max_wait
|
||||
FROM gv$session_event e, gv$session s, gv$process p
|
||||
WHERE s.inst_id = p.inst_id
|
||||
AND s.PADDR = p.ADDR
|
||||
AND e.inst_id = s.inst_id
|
||||
AND e.sid = s.sid
|
||||
AND p.spid = :PID
|
||||
AND p.inst_id = :INST_ID
|
||||
order by e.time_waited desc
|
||||
/
|
||||
|
||||
|
||||
Prompt
|
||||
Prompt ####### Kill/Disconnect Command ####################
|
||||
|
||||
COLUMN command HEADING "Disconnect Command" FORMAT a60
|
||||
COLUMN command2 HEADING "Kill Command" FORMAT a60
|
||||
|
||||
|
||||
select 'alter system disconnect session ''' || s.sid || ',' || s.serial# || ',@' || s.inst_id || ''' immediate ; ' Command
|
||||
, 'alter system kill session ''' || s.sid || ',' || s.serial# || ',@' || s.inst_id || ''' immediate ; ' Command2
|
||||
from gv$session s
|
||||
, gv$process p
|
||||
where s.inst_id = p.inst_id
|
||||
AND s.PADDR = p.ADDR
|
||||
AND p.spid = :PID
|
||||
AND p.inst_id = :INST_ID
|
||||
;
|
||||
|
||||
|
||||
BEGIN
|
||||
:PID := NULL;
|
||||
:INST_ID := NULL;
|
||||
END;
|
||||
/
|
||||
|
||||
@@footer
|
||||
|
||||
|
||||
Reference in New Issue
Block a user