!
!
!
!
!
!
!
!

FAQ/tuning
Cache buffers chains
C’est quoi le compteur cache buffers chains latch? Comment je peux diminuer ses attentes ?
Cache buffers chains latch
Ce latch est nécessaire lors de la recherche des buffers dans le cache. Lors de l'accès par plusieurs transactions concurrentes aux données du même bloc, plusieurs images du même bloc peuvent cohabiter dans la SGA et Oracle peut reconstruire (cloner) les images 'avant' en rafale. Du fait de la modalité d'accès à une donnée quelconque (basée sur le résultat de l'application d'une fonction de hashage), comme les blocs clonés ont la même adresse physique, des multiples collisions peuvent avoir lieu, déterminant une contention dramatique mesurée par cache buffers chains latch.
Les listes chaînées (Cache buffers chains) sont des listes (très courtes) qui permettent à Oracle de trouver un bloc recherché dans le cache des données. Chaque bloc dans la base est haché (adresse du bloc, tablespace, type de bloc, etc) pour pointer vers une ou autre des listes. Il y a plus de chaînes de hachage que des buffers dans le cache, donc une bonne partie sont des listes libres à a un moment donné ; les listes significatives peuvent etre constitués de deux-trois blocs, la recherche d’un bloc se fait très rapidement. Ces chaines sont proteges par les latches de type cache buffers chains. Chaque latch protége ~ 64/128/256/1024 listes de hachage (en fonction de la version).
Comment je remédie ?
La contention pour ces latches est pratiquement systématiquement due aux blocs chauds touchés par du SQL non optimisé.
Lectures supplémentaires :
http://www.tafora.fr/div/tun_latch.html
http://www.tafora.fr/wp/latch.doc.html
http://www.tafora.fr/wp/buffer_pool.doc.html
http://www.tafora.fr/edu/admin8i2j.html

Copyright © 1998-2002 Radu Caulea, TAFORA MAJ 06/11/2006 !
Commentaires et suggestions radu[CHEZ]tafora.fr