Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
7 septembre 2010 2 07 /09 /septembre /2010 01:02


C'est quoi un WAIT_EVENT ?

Dans Oracle 10G les évènements d'attentes ( Wait Events ) sont classées par catégories ( Wait Class ).

Ce premier article ne rentrera pas dans le vif du sujet mais va simplement décrire succinctement le système de nommage des événement d'attentes. (Prochainement des articles plus technique sur les Wait).

Une instance Oracle est composée de Processus d'arrière plan (Background Process) qui permettent d'assurer et de gérer les flux entre mémoire, fichiers, disques, réseaux, ...
Chaque processus oracle a des tâches bien spécifiques à accomplir, exécuter.( voir lien bas d'article )
Si un processus doit exécuter une tâche, et que ce processus doit attendre avant de pouvoir continuer, terminer son action, alors il sera en attente et sera traduit en un Wait_Event.
Les Wait Events permettent de savoir par exemple sur un traitement batch de 60 minutes, les attentes de lectures disques causées par des Full Table Scan, les attentes de lectures disques causées par des verrous, latch,...

Généralement, l'élimination ou la réduction d'un évènement d'attente passe souvent par la modification de requêtes SQL, PL/SQL non optimisées, de paramètres d'initialisations de base, de paramètres liés au système d'exploitation, de la répartition des différents fichiers composant la base (RedoLog, ControlFiles, Datafiles, Archives),...  

Quelques Vues en rapport avec les wait events :

V$EVENT_NAME : Evénements d'attentes classés par catégories (Wait Class) avec propriété de P1,P2,P3.
V$SESSION_WAIT : Evénements d'attentes en cours sur les sessions.
V$SESSION_EVENT : Cumul des événements d'attentes par sessions.

 

Voici une liste des principaux WAIT_EVENTS avec leur WAIT_CLASS respectifs.

 
 SELECT wait_class "WAIT EVENTS CLASS", name "WAIT EVENTS NAME" FROM v$event_name WHERE wait_class NOT IN( 'Other','Idle','Cluster','Scheduler') AND (name like 'control%' OR name like 'log%' OR name like 'db_file%' OR name like 'buffer%') ORDER BY 2; 
WAIT EVENTS CLASS WAIT EVENTS NAME
Concurrency buffer busy waits
Administrative buffer pool resize
User I/O buffer read retry
System I/O control file parallel write
System I/O control file sequential read
System I/O control file single write
User I/O db file parallel read
System I/O db file parallel write
User I/O db file scattered read
User I/O db file sequential read
User I/O db file single write
Configuration log buffer space
System I/O log file parallel write
System I/O log file sequential read
System I/O log file single write
Configuration log file switch (archiving needed)
Configuration log file switch (checkpoint incomplete)
Configuration log file switch (private strand flush incomplete)
Configuration log file switch completion
Commit log file sync

 

Liens en rapport avec l'article et qui sont susceptibles de vous intéresser
• Les Processus d’arrière plan

Partager cet article

Repost 0
Published by Daniel Roesch - dans TUNING
commenter cet article

commentaires