Téléchargé 1 fois
Vote des utilisateurs
0
0
Détails
Licence : Non renseignée
Mise en ligne le 30 décembre 2011
Langue : Français
Référencé dans
Navigation
Comment afficher les évènements d'attente et les valeurs des variables liées
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"
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"
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.