Hola, hemos encontrado la solución a tu búsqueda, has scroll y la hallarás un poco más abajo.
Solución:
Cursores totales abiertos, por sesión:
select a.value, s.username, s.sid, s.serial#
from v$sesstat a, v$statname b, v$session s
where a.statistic# = b.statistic# and s.sid=a.sid
and b.name = 'opened cursors current';
Fuente: http://www.orafaq.com/node/758
Por lo que sé, las consultas sobre las vistas de v$ se basan en pseudotablas (tablas “x$”) que apuntan directamente a las partes relevantes del SGA, por lo que no puede ser más preciso que eso; sin embargo, esto también significa que es puntual (es decir, lectura sucia).
select sql_text, count(*) as "OPEN CURSORS", user_name from v$open_cursor
group by sql_text, user_name order by count(*) desc;
parece funcionar para mí.
Aquí se explica cómo encontrar cursores abiertos que se han analizado. Debe iniciar sesión como usuario con acceso a v$open_cursor y v$session.
COLUMN USER_NAME FORMAT A15
SELECT s.machine, oc.user_name, oc.sql_text, count(1)
FROM v$open_cursor oc, v$session s
WHERE oc.sid = s.sid
GROUP BY user_name, sql_text, machine
HAVING COUNT(1) > 2
ORDER BY count(1) DESC
;
Si le brinda parte del texto SQL, puede ser útil para identificar aplicaciones con fugas. Si un cursor no ha sido analizado, entonces no aparece aquí. Tenga en cuenta que Oralce a veces mantendrá las cosas abiertas más tiempo que usted.
Al final de la página puedes encontrar las notas de otros creadores, tú también puedes mostrar el tuyo si te gusta.