199 lines
4.8 KiB
MySQL
199 lines
4.8 KiB
MySQL
|
|
@@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
|
||
|
|
|
||
|
|
|