miércoles, febrero 18, 2009
Controla los procesos de la base de datos II
Hace unos meses comentaba que en cualquier base de datos es importante controlar los procesos pesados para saber donde están los cuellos de botella.
Aquella vez utilizamos el DBMS_SUPPORT.START_TRACE_IN_SESSION
Hoy vamos a hacer algo parecido pero de otra forma. El objetivo va a ser el mismo: Tracear una sesión en lugar de todo el sistema. De esta forma las trazas serán de menor tamaño y más fáciles de analizar.
Lo primero es abrir dos sesiones Oracle. Una es la que lanza el proceso que queremos controlar. La otra para activar las trazas.
Para activar las trazas abrimos hay que iniciar sesión como dba. Podemos usar el svrmgr, el SQL*Plus, el SQL Worksheet, etc.
svrmgrl
SVRMGR> connect / as sysdba
SVRMGR> select v$process.SPID, v$process.USERNAME from
2> v$process, v$session
3> where v$session.PADDR=v$process.ADDR
4> order by v$session.logon_time;
SPID USERNAME
--------- ---------------
675 oracle
1857 oracle
16521 oracle
16522 oracle
Esa select podemos ejecutarla dos veces. Una, antes de lanzar el proceso a analizar, y otra después. De esta forma estaremos seguros del SPID del proceso.
Si el SPID del proceso es el 16521...
SVRMGR>oradebug SETOSPID 16521
Statement processed.
SVRMGR>oradebug event 10046 trace name context forever, level 12
La segunda sentencia incluirá "bind variables" en el fichero de traza.
Más información en las notas técnicas de ORACLE:
Note 115675.1 How to Trace Sessions Using Event 10046 With Level xx in Oracle Applications
Note 76338.1 Tracing Tips for Oracle Applications
Saludos.
Etiquetas:
documentacion,
oracle
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario