domingo, 20 de abril de 2008

TKPROF y Tracefile

Es necesario usar dos parametros de la base de datos, para realizar el trace de las sesiones:

  • TIMED_STATISTICS : que debe ser TRUE para usar estadisticas.

  • USER_DUMP_DEST : donde se establece el directorio donde el server escribirá los tracefiles.
Existe un parámetro relacionado a este último:
  • MAX_DUMP_FILE_SIZE : que permite establecer el tamaño máximo del tracefile, lo valores válidos para este parámetro son UNLIMITED, o un número seguido de una M o K para establecer el tamaño en Megabytes o KBytes como tamaño máximo a ocupar. De solo tener un número (sin la letra M o K) se considera que está especificándose el número máximo de bloques del SO que el archivo puede ocupar.


¿Cómo habilitarlo?



Puede habilitarse de las siguientes maneras:

  1. SQL*Plus: SQL> alter session set sql_trace true;

  2. PL/SQL: dbms_session.set_sql_trace(TRUE);

  3. DBA: SQL> execute sys.dbms_system.set_sql_trace_in_session(sid,serial#,TRUE); donde sid y serial# provienen de la consulta Select username, sid, serial#, machine from v$session;

  4. PRO*C: EXEC SQL ALTER SESSION SET SQL_TRACE TRUE;


¿Cómo leo los tracefiles?



Usando TKPROF puedo leer los tracefiles generando a partir de ellos un archivo de texto con el detalle. La sintaxis del comando es la siguiente



TKPROF tracefile exportfile [explain=username/password] [table= …] [print= ] [insert= ] [sys= ] [record=..] [sort= ]



Y un ejemplo,

tkprof ora_12345.trc output.txt explain=scott/tiger

Fuentes:

No hay comentarios: