There are 1000s of Inactive sessions are there in Oracle database. Some are even 1 month old. sql_text shows a particular query in 90% of the cases. Query is working fine without any slowness.OracleConnection is disposed properly.
Any idea what can be reason ?
Query used to find inactive sessions
SELECT s.SID, s.STATUS, s.process, s.osuser, a.sql_text, p.program
FROM v$session s, v$sqlarea a, v$process p
WHERE s.PREV_HASH_VALUE = a.hash_value
AND s.PREV_SQL_ADDR = a.address
AND s.paddr = p.addr
AND s.STATUS = 'INACTIVE'
The following recommendations will help you in your SQL tuning process.
You'll find 3 sections below:
CREATE INDEX vprocess_idx_addr ON v$process (addr);
CREATE INDEX vsession_idx_status_prev_va_prev_ad_paddr ON v$session (STATUS,PREV_HASH_VALUE,PREV_SQL_ADDR,paddr);
CREATE INDEX vsqlarea_idx_hash_value_address ON v$sqlarea (hash_value,address);
SELECT
s.SID,
s.STATUS,
s.process,
s.osuser,
a.sql_text,
p.program
FROM
v$session s,
v$sqlarea a,
v$process p
WHERE
s.PREV_HASH_VALUE = a.hash_value
AND s.PREV_SQL_ADDR = a.address
AND s.paddr = p.addr
AND s.STATUS = 'INACTIVE'