|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
![]() Inscription : septembre 2004 Messages : 626 ![]() |
Bonjour,
Je vous propose un nouvel élément à utiliser : Comment afficher les évènements d'attente et les valeurs des variables liées Affichage des attentes et des valeurs des bind variables Le script ci-joint permet à partir d'un fichier de trace d'obtenir les attentes au niveau de chaque requête et au niveau du fichier ainsi que d'afficher les valeurs des bind variables. Il est utile dans la mesure où les fichiers de trace sont directement exploitables. De plus, ces informations ne sont pas restituées par l'outil TkProf. Les résultats sont affichés directement à l'écran. Il faut pour voir ces informations générer un fichier de trace avec la commande suivante : ALTER SESSION SET EVENTS '10046 trace name context forever, LEVEL 12'; Ensuite, vous pouvez exécuter les requêtes/procédures que vous souhaitez analyser. pour arrêter la génération des traces, il faut exécuter : ALTER SESSION SET EVENTS '10046 trace name context off'; Le script est écrit en PERL. PERL est un langage très courant sous Unix. L'utilisateur peut télécharger gratuitement un interpréteur PERL ici : http://www.activestate.com/Products/ActivePerl. Pour lancer ce script : perl wait.pl Exemples de sortie : ela : est le temps écoulé (elapsed time) en centième de secondes. cnt : est le nombre de fois où ce type d'attente s'est produit. Affichage des attentes au niveau de chaque requête : ===================== CURSOR 23 INSERT /*+ APPEND */INTO DM_PERSONNALISE ( CLIENT_ID,C_CONTRIB,ISSUER_ID,NOTE_INTERNE ) SELECT A.CLIENT_ID,B.DM_C_CONTRIB,B.DM_ISSUER_ID,'N' FROM DM_CLIENT A,DM_ISSUER B,PPWEB.GRP_CLIENT@PUSHPULL C,PPWEB.GRP_ISSUER@PUSHPULL D WHERE A.CLIENT_ID = C.CLIENT_ID AND C.GRP_ID = D.GRP_ID AND D.C_CONTRIB = B.C_CONTRIB AND D.ISSUER_ID = B.ISSUER_ID WAIT : SQL*Net more data from dblink ela=2 cnt=681 WAIT : SQL*Net message to dblink ela=0 cnt=1341 WAIT : control file parallel write ela=0 cnt=2 WAIT : direct path write ela=0 cnt=1 WAIT : SQL*Net message from dblink ela=1324 cnt=1341 WAIT : control file sequential read ela=0 cnt=10 Affichage des attentes au niveau du fichier : Total waits : WAIT : SQL*Net message from dblink ela=40187 cnt=40917 WAIT : SQL*Net message to dblink ela=8 cnt=40917 WAIT : SQL*Net message from client ela=7 cnt=13 WAIT : pipe get ela=6 cnt=1 WAIT : rdbms ipc reply ela=5 cnt=13 WAIT : SQL*Net more data from dblink ela=4 cnt=685 WAIT : db file sequential read ela=3 cnt=37 WAIT : log file sync ela=3 cnt=9 WAIT : local write wait ela=3 cnt=18 WAIT : file open ela=2 cnt=6 WAIT : control file sequential read ela=1 cnt=36 WAIT : single-task message ela=1 cnt=2 WAIT : direct path write ela=0 cnt=3 WAIT : SQL*Net message to client ela=0 cnt=13 WAIT : db file scattered read ela=0 cnt=1 WAIT : control file parallel write ela=0 cnt=6 Affichage des valeurs des bind variables : ===================== CURSOR 25 SELECT I.PROPERTY FROM SYS.OBJ$ IOB,SYS.USER$ U,SYS.IND$ I WHERE IOB.NAME = :b1 AND U.NAME = :b2 AND IOB.OBJ# = I.OBJ# AND IOB.OWNER# = U.USER# BIND : 1 value="PK_DM_GRP_CONTENT" BIND : 2 value="DEXD" Qu'en pensez-vous ?
__________________
In the heart of the truly greats, perfection is never achieved but endlessly pursued. Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...) |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com