SQL Queries to Check ACTIVE / INACTIVE Sessions
Total Count of sessions
SELECT Count(s.status) TOTAL_SESSIONS
FROM gv$session s;
Total Count of Inactive sessions
SELECT Count(s.status) INACTIVE_SESSIONS
FROM gv$session s,
v$process p
WHERE p.addr = s.paddr
AND s.status = ‘INACTIVE’;
SESSIONS WHICH ARE IN INACTIVE STATUS FROM MORE THAN 1HOUR
SELECT Count(s.status) “INACTIVE SESSIONS > 1HOUR “
FROM gv$session s,
v$process p
WHERE p.addr = s.paddr
AND s.last_call_et > 3600
AND s.status = ‘INACTIVE’;
COUNT OF ACTIVE SESSIONS
SELECT Count(s.status) ACTIVE_SESSIONS
FROM gv$session s,
$process p
WHERE p.addr = s.paddr
AND s.status = ‘ACTIVE’;
TOTAL SESSIONS COUNT ORDERED BY PROGRAM
col program FOR a30
SELECT s.program,
Count(s.program) Total_Sessions
FROM gv$session s,
v$process p
WHERE p.addr = s.paddr
GROUP BY s.program;
TOTAL COUNT OF SESSIONS ORDERED BY MODULE
col MODULE FOR a30
prompt total sessions
SELECT s.MODULE,
Count(s.sid) Total_Sessions
FROM gv$session s,
v$process p
WHERE p.addr = s.paddr
GROUP BY s.MODULE;
TOTAL COUNT OF SESSIONS ORDERED BY ACTION
col action FOR a30
prompt total sessions
SELECT s.action,
Count(s.sid) Total_Sessions
FROM gv$session s,
v$process p
WHERE p.addr = s.paddr
GROUP BY s.action;
INACTIVE SESSIONS
prompt inactive sessions
SELECT p.spid,
s.sid,
s.last_call_et / 3600 last_call_et,
s.status,
s.action,
s.MODULE,
s.program
FROM gv$session s,
v$process p
WHERE p.addr = s.paddr
AND s.status = ‘INACTIVE’;
INACTIVE
prompt inactive sessions
SELECT Count(s.status) INACTIVE
FROM gv$session s,
gv$sqlarea t,
v$process p
WHERE s.sql_address = t.address
AND s.sql_hash_value = t.hash_value
AND p.addr = s.paddr
AND s.status = ‘INACTIVE’;
INACTIVE PROGRAMS
col MODULE FOR a40
prompt inactive sessions
col inactive_programs FOR a40
SELECT DISTINCT ( s.program ) INACTIVE_PROGRAMS,
s.MODULE
FROM gv$session s,
v$process p
WHERE p.addr = s.paddr
AND s.status = ‘INACTIVE’;
INACTIVE PROGRAMS with disk reads
prompt inactive sessions
SELECT DISTINCT ( s.program ) INACTIVE_PROGRAMS,
SUM(T.disk_reads)
FROM gv$session s,
gv$sqlarea t,
v$process p
WHERE s.sql_address = t.address
AND s.sql_hash_value = t.hash_value
AND p.addr = s.paddr
AND s.status = ‘INACTIVE’
GROUP BY S.program;
INACTIVE SESSIONS COUNT WITH PROGRAM
col program FOR a30
prompt total inactive sessions
col inactive_programs FOR a40
SELECT s.program,
Count(s.program) Total_Inactive_Sessions
FROM gv$session s,
v$process p
WHERE p.addr = s.paddr
AND s.status = ‘INACTIVE’
GROUP BY s.program
ORDER BY 2 DESC;
TOTAL INACTIVE SESSIONS MORE THAN 1HOUR
col program FOR a30
col inactive_programs FOR a40
SELECT s.program,
Count(s.program) Inactive_Sessions_from_1Hour
FROM gv$session s,
v$process p
WHERE p.addr = s.paddr
AND s.status = ‘INACTIVE’
AND s.last_call_et > ( 3600 )
GROUP BY s.program
ORDER BY 2 DESC;
TOTAL INACTIVE SESSIONS GROUP BY MODULE
col program FOR a30
col inactive_programs FOR a40
SELECT s.program,
Count(s.program) Inactive_Sessions_from_1Hour
FROM gv$session s,
v$process p
WHERE p.addr = s.paddr
AND s.status = ‘INACTIVE’
AND s.last_call_et > ( 3600 )
GROUP BY s.program
ORDER BY 2 DESC;
INACTIVE SESSION DETAILS MORE THAN 1 HOUR
set pagesize 40
col inst_id FOR 99
col spid FOR a10
set linesize 150
col program FOR a10
col action format a10
col logon_time format a16
col MODULE format a13
col cli_process format a7
col cli_mach FOR a15
col status format a10
col username format a10
col last_call_et_hrs FOR 9999.99
col sql_hash_value FOR 9999999999999col username FOR a10
set linesize 152
set pagesize 80
col “Last SQL” FOR a60
col elapsed_time FOR 999999999999
SELECT p.spid,
s.sid,
s.last_call_et / 3600 last_call_et_Hrs,
s.status,
s.action,
s.MODULE,
s.program,
t.disk_reads,
Lpad(t.sql_text, 30) “Last SQL”
FROM gv$session s,
gv$sqlarea t,
gv$process p
WHERE s.sql_address = t.address
AND s.sql_hash_value = t.hash_value
AND p.addr = s.paddr
AND s.status = ‘INACTIVE’
AND s.last_call_et > ( 3600 )
ORDER BY last_call_et;
INACTIVE PROGRAM
SELECT p.spid,
s.sid,
s.last_call_et / 3600 last_call_et_Hrs,
s.status,
s.action,
s.MODULE,
s.program,
t.disk_reads,
Lpad(t.sql_text, 30) “Last SQL”
FROM gv$session s,
gv$sqlarea t,
gv$process p
WHERE s.sql_address = t.address
AND s.sql_hash_value = t.hash_value
AND p.addr = s.paddr
AND s.status = ‘INACTIVE’
AND s.program = ‘&PROGRAM_NAME’
ORDER BY last_call_et;
INACTIVE MODULES
SELECT p.spid,
s.sid,
s.last_call_et / 3600 last_call_et_Hrs,
s.status,
s.action,
s.MODULE,
s.program,
t.disk_reads,
Lpad(t.sql_text, 30) “Last SQL”
FROM gv$session s,
gv$sqlarea t,
gv$process p
WHERE s.sql_address = t.address
AND s.sql_hash_value = t.hash_value
AND p.addr = s.paddr
AND s.MODULE LIKE ‘%order_cleanup_hazmat_v3.sql’
ORDER BY last_call_et;
INACTIVE JDBC SESSIONS
set pagesize 40
col inst_id FOR 99
col spid FOR a10
set linesize 150
col program FOR a10
col action format a10
col logon_time format a16
col MODULE format a13
col cli_process format a7
col cli_mach FOR a15
col status format a10
col username format a10
col last_call_et FOR 9999.99
col sql_hash_value FOR 9999999999999col username FOR a10
set linesize 152
set pagesize 80
col “Last SQL” FOR a60
col elapsed_time FOR 999999999999
SELECT p.spid,
s.sid,
s.last_call_et / 3600 last_call_et,
s.status,
s.action,
s.MODULE,
s.program,
t.disk_reads,
Lpad(t.sql_text, 30) “Last SQL”
FROM gv$session s,
gv$sqlarea t,
gv$process p
WHERE s.sql_address = t.address
AND s.sql_hash_value = t.hash_value
AND p.addr = s.paddr
AND s.status = ‘INACTIVE’
AND s.program = ‘JDBC Thin Client’
AND s.last_call_et > 3600
ORDER BY last_call_et;
COUNT OF INACTIVE SESSIONS MORE THAN ONE HOUR
SELECT Count(P.spid)
FROM gv$session s,
gv$sqlarea t,
gv$process p
WHERE s.sql_address = t.address
AND s.sql_hash_value = t.hash_value
AND p.addr = s.paddr
AND s.status = ‘INACTIVE’
AND s.program = ‘JDBC Thin Client’
AND s.last_call_et > 3600
ORDER BY last_call_et;