Précédent   Forum du club des développeurs et IT Pro > Bases de données > Oracle > Contribuez
Contribuez Proposez vos articles, cours, tutoriels, FAQ, sources, et autres ressources sur Oracle et ses technologies
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 30/12/2011, 15h01   #1
lalystar
Rédacteur
 
Inscription : septembre 2004
Messages : 626
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 626
Points : 671
Points : 671
Par défaut Comment afficher les évènements d'attente et les valeurs des variables liées

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...)
lalystar est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 09h14.


 
 
 
 
Partenaires

Hébergement Web