Indentificar sesiones colgadas en Oracle

Estaba teniendo serios problemas con una de mis bases de datos en las cuales las sesiones se estaban quedando bloquedas (colgadas) y no dejaban trabajar a los otros usuarios.

No voy a discutir como se soluciona este error puesto que es más problema del producto que está instalado en la base de datos que la base de datos en si. Lo que si voy a mostrar es como visualizar que sesiones pueden estar colgadas.


select a.sid, a.serial# sid, a.username, a.machine, a.program, a.status, b.event, b.seconds_in_wait
from v$session a, v$session_wait b
where b.sid = a.sid
and a.username is not null
and status = 'ACTIVE'
order by b.seconds_in_wait
/

Aquí la colúmna importante es seconds_in_wait que nos dice cuantos segundos lleva una sesion esperando por datos para terminar la transacción.

Resultados de más de 60, osea un minuto, nos dicen que es muy probable que la sesión esté colgada y casi con seguridad es necesario terminar (matar) esa sesión.

Entonces simplemente se ejecuta


alter system kill session ,