Pools de mémoire tampon basés sur des blocs pour améliorer la lecture anticipée séquentielle
La lecture anticipée des pages à partir du disque est coûteuse en raison de la surcharge d'E-S. Le débit peut être considérablement amélioré si le traitement chevauche les E-S.
La plupart des plateformes fournissent des primitives hautes performances qui lisent les pages contiguës du disque dans des parties non contiguës de la mémoire. Ces primitives sont généralement appelées lecture dispersée ou E-S vectorielles. Sur certaines plateformes, les performances de ces primitives ne peuvent pas rivaliser avec l'exécution d'E-S dans des blocs de grande taille.
Par défaut, les pools de mémoire tampon sont basés sur des pages, ce qui signifie que les pages contiguës sur le disque sont prélues dans des pages non contiguës en mémoire. La lecture anticipée séquentielle peut être améliorée si des pages contiguës peuvent être lues depuis le disque vers des pages contiguës dans un pool de mémoire tampon.
Vous pouvez créer des pools de mémoire tampon basés sur des blocs à cette fin. Un pool de mémoire tampon basé sur des blocs se compose à la fois d'une zone de page et d'une zone de bloc. La zone de page est requise pour les charges de travail de préextraction non séquentielles. La zone de bloc est constituée de blocs ; chaque bloc contient un nombre spécifié de pages contiguës, appelé taille de bloc.
- La taille d'extension, qui détermine la taille de la demande de lecture anticipée, est inférieure à la taille de bloc spécifiée pour le pool de mémoire tampon
- Certaines pages de la demande de préextraction sont déjà présentes dans la zone de page du pool de mémoire tampon
Le serveur d'E-S autorise certaines pages perdues dans chaque bloc de pool de mémoire tampon, mais si un trop grand nombre de pages est perdu, le serveur d'E-S effectue une lecture anticipée non basée sur les blocs dans la zone de page du pool de mémoire tampon, ce qui entraîne des performances sous-optimales.
Pour des performances optimales, liez des espaces table de la même taille d'extension à un pool de mémoire tampon dont la taille de bloc est égale à la taille d'extension d'espace table. De bonnes performances peuvent être obtenues si la taille d'extension est supérieure à la taille de bloc, mais pas si la taille d'extension est inférieure à la taille de bloc.
Pour créer des pools de mémoire tampon basés sur des blocs, utilisez l'instruction CREATE BUFFERPOOL ou ALTER BUFFERPOOL.