Traza de un determinado SQLid

Hoy vamos a volver a los comandos basicos de tune.

Supogamosque tengamos identificado un sqlid df759ww9krh1x que nos da problemas.

Como lo trazamos?

La manera mas sencilla de tener una traza en ese sqlid es:

alter system set events 'sql_trace[sql: df759ww9krh1x] level=12';

Donde encuentro la traza?

La encontraremos en el lugar habitual de las trazas que suele ser

$ORACLE_BASE/diag/rdbms/< DB_NAME >/< INSTANCE_NAME >/trace/

Que nombre tedra el fichero?

EL fichero sera del de tipo *_ora_.trc , la manera de encontrar el PID perteneciente al proceso (server process) que ejecuta el SQL con ese SQL_ID

select spid
from v$process p
join v$session s on p.addr = s.paddr
where s.sql_id = 'df759ww9krh1x';

Como vemos que hay dentro de esa traza?

Para ello, usamos el tkprof

tkprof ORCL1_ora_12345.trc salida_df759ww9krh1x.txt sort=exeela,fchela

Como desahbiliatmos la traza?

Tan importante ocmo activarla es asegurares que queda desactivada

alter system set events 'sql_trace[sql: df759ww9krh1x] off';

Como podeis ver , todo bien facil