Salut,
J'ai plusieurs questions à vous soumettre sur les Wait Events.
1) Dans le livre "Oracle Database 12c Performance Tuning Recipes", page 161 il est écrit
"Db file scattered read: These are waits incurred by an user process for a physical I/O to return when reading buffers into the SGA buffer cache. The scattered reads are multiblock reads and can occur because of a full table scan or a fast full scan of an index."
Ce que je ne comprends pas c'est : est-ce que la valeur du wait event en secondes représente le temps d'attente pour que les blocs de données soient lus du disque dur vers la SGA ou la durée du travail effectué lors de cette opération? Le process serveur met 10 secondes pour copier les data blocs du disque dur dans la SGA, c'est un vrai travail donc je ne vois pas pourquoi ce serait considéré comme un temps d'attente : on est d'accord?
2) Lorsqu'il y a des Buffer Busy Waits, c'est uniquement lorsque deux process veulent accéder au même data bloc MAIS uniquement pour le mettre à jour (genre : Update ou Insert ou Delete). La règle chez Oracle est : les Readers ne bloquent ni les Readers ni les Writers, les Writers ne bloquent pas les Readers mais seulement les autres Writers. Donc un Full Table Scan sur une table chargée en mémoire qui prend 1 minutes et un update sur tous les rows de cette même table prenant 5 minutes par un autre process ne doit générer aucun temps d'attente.
C'est uniquement si un Writer lock tous les data blocs de la table avec un Update de la table que les autres Writers doivent attendre le COMMIT ou ROLLBACK de la transaction précédente, est-ce bien cela?
Merci pour vos réponses car le sujet est ardu!
Partager