Debe introducir al menos 3 caracteres en el buscador.
Inicio / Wikis / Monografías / FAQ - Preguntas frecuentes sobre Oracle - ¿Cómo puedo obtener una traza de todas las sentencias ejecuta

FAQ - Preguntas frecuentes sobre Oracle - ¿Cómo puedo obtener una traza de todas las sentencias ejecuta

 ----- 
Creative Commons Monografía de José Manuel - 27 de Agosto de 2005
Temas Relacionados: Oracle
4. ¿Cómo puedo obtener una traza de todas las sentencias ejecuta
Oracle nos permite obtener una traza de todas las instrucciones que se lancen en una sesión determinada. Puede ser útil para ver el plan de ejecución de cada una de ellas, para averiguar las instrucciones SQL que son lanzadas contra una base de datos (cuando no disponemos de los fuentes de un programa concreto), o incluso para detectar qué instrucción ralentiza un proceso complejo.


Los pasos a dar son:


a) Obtener el 'sid' y 'serial#' del proceso sobre el que queremos hacer la traza. Para ello debemos hacer la siguiente consulta sobre V$SESSION:


SELECT username, program, sid, serial#
FROM v$session
ORDER BY 1, 2;


Dentro de la tabla resultado, buscaremos nuestro proceso, por ejemplo:


USERNAME PROGRAM SID SERIAL#



SCOTT DELPHI32.EXE 9 30


b) Ejecutar el siguiente bloque de código PL/SQL:


BEGIN
SYS.DBMS_SYSTEM.set_sql_trace_in_session(9, 30, TRUE);
END;


Esto nos activa la traza para una sesión identificada por sid y serial#


c) Ejecutar todas las instrucciones sobre las que queremos hacer la traza. Esto puede ser una instrucción concreta, un proceso completo, o incluso una jornada entera de trabajo con un programa.


d) Ejecutar de nuevo el bloque de código para desactivar la traza:


BEGIN
SYS.DBMS_SYSTEM.set_sql_trace_in_session(9, 30, FALSE);
END;


e) En el directorio configurado para la salida aparecerá nuestro archivo de traza ORAxxx.trc. Este directorio se configura desde la opción USER_DUMP_DEST del archivo INIT.ORA. Por defecto tiene el valor ORACLE_HOME/rdbms/trace.


f) Formatear el archivo de traza a través de la utilidad TKPROF, situada en el directorio BIN de la instalación de Oracle. Una llamada básica podría ser la siguiente:


TKPROF <fichero_traza> <fichero_salida> [explain=usuario/password] [sys=no]


Con el parámetro "explain=usuario/password" indicamos que nos muestre el plan de ejecución de todas las instrucciones, conectándose para ello al usuario/password indicados.
Con el parámetro "sys=no" indicamos que no nos muestre las instrucciones realizadas por el usuario SYS.


Además de las instrucciones y su plan de ejecución, el archivo de traza nos proporciona información sobre las sentencias erroneas, los tiempos de ejecución, el optimizador utilizado, etc.
Autor y licencia de 'FAQ - Preguntas frecuentes sobre Oracle - ¿Cómo puedo obtener una traza de todas las sentencias ejecuta'
José Manuel Extraído de: http://www.lawebdejm.com

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Wikis relacionados con 'FAQ - Preguntas frecuentes sobre Oracle - ¿Cómo puedo obtener una traza de todas las sentencias ejecuta'

Existen programas cuya instalación es difícil, existen programas cuya configuración es difícil, existen programas cuyo... Más »
Existen programas cuya instalación es difícil, existen programas cuya configuración es difícil, existen programas cuyo... Más »
Desde el comienzo, desde aquel primer hombre, se encuentra en nosotros la necesidad de inserción... Más »
En este artículo respondemosa a las dudas más frecuentes que suelen tener empleados y directivos... Más »
Debian es el nombre de una organización dedicada al desarrollo y mantenimiento de sistemas operativos... Más »
¿Estás seguro de que deseas eliminar este capítulo?