Oracle - consulta de que packages con cursores son usados

   
Vista:

consulta de que packages con cursores son usados

Publicado por luis luis.jarreguin@gmail.com (2 intervenciones) el 24/08/2017 17:42:22
Hola buen dia
tengo varias aplicaciones de java las cuales manda a llamar algunos packages y procediemientos de oracle los cuales ocupan cursores.
La consulta que quiero hacer en oracle es cuantos cursores tengo abiertos en ese momento y que store procedure es el que lo ocupa, hasta ahorita solo he encontrado consulta para saber cuantos cursores tengo abiertos pero no quien los invoca.

Cursores abiertos por usuario:
1
2
3
4
5
6
7
8
9
10
select b.sid, a.username, b.value Cursores_Abiertos
      from v$session a,
           v$sesstat b,
           v$statname c
      where c.name in ('opened cursors current')
      and   b.statistic# = c.statistic#
      and   a.sid = b.sid
      and   a.username is not null
      and   b.value >0
      order by 3

De antemano gracias por su ayuda
gracias y saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

consulta de que packages con cursores son usados

Publicado por Rafael (254 intervenciones) el 25/08/2017 09:59:54
Hola:

Este dato puede ser erroneo (y lo es) y lo documenta ORACLE "Bug 3926058 - V$SYSSTAT"

Pero ademas el concepto CURSOR, que representa este valor NO es el mismo que estas tratando de interpretar.

Cada vez que tu realizas un query la base de datos para devolverte los datos realiza un cursor, por lo que este dato te esta devolviendo el numero de cursores que ha abierto una sesion sin diferenciar si son internos, por queries o nominales en un package, de tal forma que el dato que estas obteniendo NO corresponde a lo que estas buscando.

Para que puedas hacer lo que necesitas, debes crear una tabla de auditoria y cada vez que se mande ejecutar un procedimiento o package lanzarlo con un audit('<package>', '<parametro1>', '<parametro2>',....,'<parametroN');

Espero te sirva, hecha un vistazo a la documentacion
http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_4007.htm
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad