Saltar al contenido

Cómo encontrar cursores abiertos actuales en Oracle

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *