Tracer une session
Objectif :
Activer les traces sur une session.
Eventuellement tracer le contenu des bind variables et les temps d’attente.
Nous allons utiliser quelques outils ( Tkprof et Trace Analyzer ) disponibles sur metalink.
1 - SQL Trace et TKPROF.
C’est la méthode la plus simple, l’activation des traces va générer un fichier .trc qu’il suffira de traiter avec tkprof.
1-1 Activer les traces.
Il exsiste plusieurs façons d’activer les traces :
Dans la session : “alter session set sql_trace=true”
Depuis une autre session : “exec sys.dbms_system.set_sql_trace_in_session(sid,serial,true)”
1-2 Traiter le fichier de trace
Les fichiers traces sont stocké dans ‘user_dump_dest’.
Lancer tkprof : ‘tkprof monfichiertrace.trc fichierdesortie.txt’
Et voila !
1-3 Stopper les traces
Surtout ne pas oublier !
dans la session : “alter session set sql_trace=false”
depuis une autre : “exec sys.dbms_system.set_sql_trace_in_session(sid,serial,false)”
2 - Les traces sur events, tkprof, Trace Analyzer.
Cette méthode vous permet de tracer plus d’informations, comme le contenu des binds variable, les temps d’attente etc..
Nous avons principalement deux type d’event :
10046 : Binds variable et wait event … ca c’est pour nous.
10053 : Pour tracer le cheminement du CBO, la c’est encore trop compiqué pour moi
Plus d’infos ICI
2-1 Activer les traces.
Dans la session : “alter session set events ‘10046 trace name context forever, level 4′;” ( level 12 pour les binds ).
Depuis une autre session : “dbms_system.setev( lesid, leserial, 10046, 4, ”);”
Depuis une autre session, bis : “EXEC DBMS_MONITOR.session_trace_enable(session_id =>1234, serial_num=>1234, waits=>TRUE, binds=>FALSE);”
2-2 Traiter le fichier de trace.
Même si tkprof peut extraire les plans d’éxécution etc de ces fichiers traces, l’utilitaire Trace Analyzer est plus complet.
Il faut d’habord le télécharger et suivre les instructions d’install, tout est dans la note n°224270.1
ensuite on éxécute : “exec trca$i.trace_analyzer(’lebeaufichierdetrace.trc’,’sortie.html’);
Ce qui nous donne un fichier “sortie.html” dans le répertoire udump.
si vous voulez voir un exemple de fichier : exemple trace analyzer
2-3 Stopper les traces.
Au choix :
“alter session set events ‘10046 trace name context off’);
“dbms_system.setev( lesid, leserial, 10046,0);”
“EXEC DBMS_MONITOR.session_trace_disable(session_id =>1234, serial_num=>1234);”
Voila !
David.
on avril 9th, 2008 at 9:53
mon serveur oracle 8.0.5
créer des fichiers trace à chaque instannt presque 10minutes
je voudrais un utilitaire permettant d’analyser les fhiciers trace *.trc SVP
on avril 9th, 2008 at 10:08
Tkprof / trace analyze permettent d’extraire les requetes SQL du fichier .trc, pour analyser les performances de celles ci.
en oracle 8.0 l’éxécutable s’appelle tkprof80 je crois.
si les traces contiennent un log d’erreur, alors il faut les analyser a la main ( il doit y avoir une erreur du type ORA-????? quelque part. )