121
5.4 Choix des compteurs
MSSQL:Access Methods\Page Splits/sec
Indique un nombre de séparations (split) de page par seconde. Un nombre élevé de
page splits indique que des index font face à d’intensives réorganisations dues à des
modifications de données sur leurs clés. Cela pourra vous pousser à utiliser un FILLFACTOR (voir section 6.1) plus élevé sur ces index, ou à modifier votre stratégie
d’indexation. Pour chercher sur quels index les splits se sont produits, la fonction de
gestion dynamique sys.dm_db_index_operational_stats peut vous donner des
pistes. Pour plus de détails, reportez-vous au chapitre 6.
MSSQL:Access Methods\Table Lock Escalations/sec
Retourne un nombre d’escalade de verrous par seconde. Pour plus d’information sur
les escalades de verrous, reportez-vous au chapitre 7.
Pour identifier quelles requêtes peuvent provoquer une escalade de verrous, vous
pouvez tenter de corréler les pics de ce compteur avec une trace SQL (voir la corrélation de journal de compteur et de trace en section 5.3.4). La colonne
index_lock_promotion_count de la fonction sys.dm_db_index_operational_stats est
également utile.
MSSQL:Buffer Manager\Database pages
Indique le nombre de pages de données cachées dans le buffer. Sur un système qui
dispose de suffisamment de RAM, cette valeur devrait peu évoluer. Si vous observez
des changements importants de ce compteur, cela veut dire que SQL Server doit
libérer des pages du buffer. Il manque certainement de la mémoire vive (il en
manque physiquement, ou l’option « max server memory » limite son utilisation par
SQL Server).
MSSQL:Buffer Manager\Free list stalls/sec
Indique la fréquence à laquelle des demandes d’octroi de pages de buffer sont suspendues parce qu’il n’y a plus de pages libres dans le cache. Cette valeur doit être la plus
petite possible. Une valeur dépassant 2 est un indicateur de manque de mémoire.
MSSQL:Buffer Manager\Page life expectancy
Indique le nombre de secondes pendant lesquelles une page de données va rester
dans le buffer sans références, c’est-à-dire sans qu’un processus n’accède à cette page.
Selon Microsoft, 300 secondes est la valeur minimum à obtenir, et l’idéal est la
valeur la plus élevée possible. Si ce compteur indique 300, cela signifie qu’une page
va être vidée du cache après 5 minutes à moins qu’elle soit utilisée dans ce laps de
temps. SQL Server ajuste cette valeur selon la quantité de mémoire disponible pour
le buffer. Moins il y a de mémoire, plus la durée de vie est courte, pour permettre à
SQL Server de libérer de la place dans le buffer pour des données plus utiles. C’est
donc un bon indicateur : si ce compteur tombe en dessous de 300, vous manquez
manifestement de mémoire pour le buffer ou vous avez malencontreusement limité
l’option « max server memory ».
5.4 Choix des compteurs
MSSQL:Access Methods\Page Splits/sec
Indique un nombre de séparations (split) de page par seconde. Un nombre élevé de
page splits indique que des index font face à d’intensives réorganisations dues à des
modifications de données sur leurs clés. Cela pourra vous pousser à utiliser un FILLFACTOR (voir section 6.1) plus élevé sur ces index, ou à modifier votre stratégie
d’indexation. Pour chercher sur quels index les splits se sont produits, la fonction de
gestion dynamique sys.dm_db_index_operational_stats peut vous donner des
pistes. Pour plus de détails, reportez-vous au chapitre 6.
MSSQL:Access Methods\Table Lock Escalations/sec
Retourne un nombre d’escalade de verrous par seconde. Pour plus d’information sur
les escalades de verrous, reportez-vous au chapitre 7.
Pour identifier quelles requêtes peuvent provoquer une escalade de verrous, vous
pouvez tenter de corréler les pics de ce compteur avec une trace SQL (voir la corrélation de journal de compteur et de trace en section 5.3.4). La colonne
index_lock_promotion_count de la fonction sys.dm_db_index_operational_stats est
également utile.
MSSQL:Buffer Manager\Database pages
Indique le nombre de pages de données cachées dans le buffer. Sur un système qui
dispose de suffisamment de RAM, cette valeur devrait peu évoluer. Si vous observez
des changements importants de ce compteur, cela veut dire que SQL Server doit
libérer des pages du buffer. Il manque certainement de la mémoire vive (il en
manque physiquement, ou l’option « max server memory » limite son utilisation par
SQL Server).
MSSQL:Buffer Manager\Free list stalls/sec
Indique la fréquence à laquelle des demandes d’octroi de pages de buffer sont suspendues parce qu’il n’y a plus de pages libres dans le cache. Cette valeur doit être la plus
petite possible. Une valeur dépassant 2 est un indicateur de manque de mémoire.
MSSQL:Buffer Manager\Page life expectancy
Indique le nombre de secondes pendant lesquelles une page de données va rester
dans le buffer sans références, c’est-à-dire sans qu’un processus n’accède à cette page.
Selon Microsoft, 300 secondes est la valeur minimum à obtenir, et l’idéal est la
valeur la plus élevée possible. Si ce compteur indique 300, cela signifie qu’une page
va être vidée du cache après 5 minutes à moins qu’elle soit utilisée dans ce laps de
temps. SQL Server ajuste cette valeur selon la quantité de mémoire disponible pour
le buffer. Moins il y a de mémoire, plus la durée de vie est courte, pour permettre à
SQL Server de libérer de la place dans le buffer pour des données plus utiles. C’est
donc un bon indicateur : si ce compteur tombe en dessous de 300, vous manquez
manifestement de mémoire pour le buffer ou vous avez malencontreusement limité
l’option « max server memory ».
