oracle_activer_une_trace_10046_afin_d_analyser_une_session

oracle trace analyse performance session

Oracle - Activer une trace 10046 afin d'analyser une session

Dans le cas d'un bug ou d'un problème de performance, mettre en place une trace peut aider à analyser le problème.

Pour tracer juste une ou plusieurs requête, voir toute une session :

$ sqlplus / as sysdba
alter session set tracefile_identifier='10046';
alter session set timed_statistics = true;
alter session set statistics_level=all;
alter session set max_dump_file_size = unlimited;
alter session set events '10046 trace name context forever,level 12';

-- Lancer la/les requête(s)

exit;

Si la session est lancée par un traitement applicatif, il faut récupérer son SID, puis l'utiliser ensuite pour trouver le OSPID :

select p.PID,p.SPID,s.SID from v$process p,v$session s where s.paddr = p.addr and s.sid = <SID>;

Enfin, dans une session SQL*Plus, lancer les commandes suivantes pour activer la trace :

connect / as sysdba
oradebug setospid <OSPID>
oradebug unlimit
oradebug event 10046 trace name context forever,level 12

Si la taille du fichier trace devient trop grosse, il suffit de lancer une petite commande pour désactiver la trace :

connect / as sysdba
oradebug setospid 9834
oradebug event 10046 trace name context off

Pour finir, le fichier trace se trouvera dans le répertoire indiqué par le paramètre “user_dump_dest”. Pour pouvoir lire le fichier de trace, l'utilisation d'un outil tel que TkProf est recommande. Pour cela, lancer la commande suivante :

tkprof fichier.trc fichier.out sort=fchela,exeela,prsela
  • oracle_activer_une_trace_10046_afin_d_analyser_une_session.txt
  • Dernière modification: 2010/10/14 15:00
  • (modification externe)