Las trazas de ejecución de oracle sirven para mostrar las sentencias SQL y su plan de ejecución de programas que acceden a bases de datos Oracle.
No es necesario disponer del código fuente ni de la sentencia SQL para saber qué y cómo se ejecutado.
Básicamente, activar la traza de ejecución consiste en ejecutar un procedimiento que tiene predefinido Oracle dentro del paquete DBMS_SYSTEM.
El procedimiento tiene la siguiente cabecera:
SYS.DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION( sid, serial#, TRUE/FALSE );
SID y SERIAL# definen la sesión a la cual queremos hacer con la traza. El tercer parámetro indica si queremos activar/desactivar la traza de ejecución.
Una vez activada la traza con SET_SQL_TRACE_IN_SESSION, toda sentencia ejecutada sobre la sesión indicada quedará registrada en un archivo .TRC, normalmente bajo el directorio ORACLE_HOME/trace80
Este fichero contiene información detallada (pero ilegible) de los planes de ejecución. Para conseguir una salida legible de esta traza se debe ejecutar la utilidad TKPROF.
Otra forma de hacer trazas de ejecución es en SQL*Plus, con la instrucción:
SET AUTO TRACE ON/OFF
Una vez activada la auto-traza, toda sentencia ejecutada en SQL*Plus vendrá acompañada de su plan y estadísticas de ejecución.
Si, además, queremos cronometrar el tiempo de ejecución de cada consulta, podemos activar el cronómetro con: