| Inicio | Tu Cuenta | Manuales | Foros | Tutoriales | Los TOP | Empleos| Artículos | Comentarios |   

Manual Oracle
 1: Monitoreo de Bloqueos 
 2: Manejo de Clusters en Oracle 
 3: Analiszando las Consultas tipo Hash 
 4: Introducción a ORACLE Developer - Castellano 
 5: Creación de un Formulario en Developer Forms - Castellano 
 6: Administracion de Base de Datos Oracle 
 7: Tutorial de Oracle9i Reports 
 8: Manual de Developer Forms 
 9: Manual de Oracle9i Reports 
 10: External tables en Oracle 9i 


Mas de Oracle


Noticias Oracle


Error Ora-


Script Oracle Español
· Scripts para DBA
· SQL ANSI en Oracle 10g
· Pivoting INsert en Oracle 10g
· Sentencias de inserción en varias tablas - Oracle 10g
· Sentencia Insert condicionada - Oracle 10 g

[ Más en la Sección de Noticias ]



¿Cómo puedo obtener una traza de todas las sentencias ejecutadas durante una ses
Enviado el Miércoles, 19 julio a las 10:32:19 por csr

Concepto y Practica

¿Cómo puedo obtener una traza de todas las sentencias ejecutadas durante una sesión?


Autor y Licencia de este articulo: José Manuel - http://www.lawebdejm.com

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   [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.


 
Enlaces Relacionados
· Más Acerca de Concepto y Practica
· Noticias de csr


Noticia más leída sobre Concepto y Practica:
Mandatos de Sql Plus



Votos del Artículo
Puntuación Promedio: 4
votos: 1


Por favor tómate un segundo y vota por este artículo:

Malo
Regular
Bueno
Muy Bueno
Excelente




Opciones

Versión Imprimible  Versión Imprimible

Enviar a un Amigo  Enviar a un Amigo


Manual Oracle
Oracle Manual y tutorial, Pl/Sql, Discoverer, Forms, Sql y Plsql - Orape



Adaptado para nuke 6.0 por DragónNB