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 |