117
5.4 Choix des compteurs
5.4 CHOIX DES COMPTEURS
Pour obtenir des informations sur les performances de SQL Server, vous devez panacher des compteurs fournis par le système d’exploitation, et des compteurs propres à
SQL Server. Certains compteurs du système d’exploitation ne peuvent donner des
informations précises, par exemple sur l’utilisation du cache de mémoire. Nous
avons parlé de la couche SQLOS. SQL Server vous fournit donc des compteurs
spécifiques qui permettent d’explorer plus en détail ce que fait SQLOS. Nous allons
séparer les compteurs essentiels, qui donnent des informations vitales sur la santé du
serveur, des compteurs simplement utiles.
5.4.1 Compteurs essentiels
MSSQL:Buffer Manager\Buffer cache hit ratio
Ce compteur indique le pourcentage de pages lues par le moteur de stockage, qui ont
pu être servies depuis le cache de données (le buffer), sans accéder au disque, calculé
sur les quelques derniers milliers de pages demandées. Ce ratio doit être élevé :
moins SQL Server doit accéder au disque, plus il sera rapide. On considère dans une
application OLTP à volumétrie moyenne, que cette valeur doit être au-dessus de 97
ou 98 %, ce qui est déjà peu. Un bon chiffre est au-dessus de 99,7 %. Si le ratio est
bas, et que vous observez également une activité et une file d’attente importantes sur
le disque, augmentez la mémoire vive de votre système (ou cherchez des scans de
table qui peuvent être éliminés par la création d’index).
MSSQL:Databases\Transactions/sec
Nombre de transactions par seconde. Le choix de l’instance de compteur permet
d’afficher toutes les transactions, ou les transactions dans un contexte de base particulier, ce qui est utile pour tracer l’activité comparative de vos bases de données, et
l’activité dans tempdb. Une utilisation régulière de ce compteur vous permet de
connaître l’activité moyenne de votre serveur, à travers le temps et durant les
périodes de la journée, ainsi que de détecter les augmentations de charge. Une valeur
élevée de transactions par seconde, avec des résultats raisonnables d’autres compteurs (utilisation du disque, pourcentage d’activité des processeurs) indique une
machine qui travaille bien. Un bon signe de l’effectivité de vos efforts d’optimisation
d’un serveur est l’augmentation du nombre de transactions par seconde, liée à la
diminution de la charge des processeurs.
Une quantité importante de transactions dans tempdb indique généralement soit
un recours fréquent aux tables temporaires dans le code, soit un fonctionnement en
niveau d’isolation snapshot. Vous pouvez vérifier que cette activité n’est pas due à
une création de tables de travail internes, destinées à résoudre des plans de requête,
en observant le compteur MSSQL:Acces Methods\Worktables Created/sec, qui indique le nombre de tables de travail créées par seconde. Les tables de travail stockent
des résultats intermédiaires lors de l’exécution de code SQL. Vous pouvez aussi vous
5.4 Choix des compteurs
5.4 CHOIX DES COMPTEURS
Pour obtenir des informations sur les performances de SQL Server, vous devez panacher des compteurs fournis par le système d’exploitation, et des compteurs propres à
SQL Server. Certains compteurs du système d’exploitation ne peuvent donner des
informations précises, par exemple sur l’utilisation du cache de mémoire. Nous
avons parlé de la couche SQLOS. SQL Server vous fournit donc des compteurs
spécifiques qui permettent d’explorer plus en détail ce que fait SQLOS. Nous allons
séparer les compteurs essentiels, qui donnent des informations vitales sur la santé du
serveur, des compteurs simplement utiles.
5.4.1 Compteurs essentiels
MSSQL:Buffer Manager\Buffer cache hit ratio
Ce compteur indique le pourcentage de pages lues par le moteur de stockage, qui ont
pu être servies depuis le cache de données (le buffer), sans accéder au disque, calculé
sur les quelques derniers milliers de pages demandées. Ce ratio doit être élevé :
moins SQL Server doit accéder au disque, plus il sera rapide. On considère dans une
application OLTP à volumétrie moyenne, que cette valeur doit être au-dessus de 97
ou 98 %, ce qui est déjà peu. Un bon chiffre est au-dessus de 99,7 %. Si le ratio est
bas, et que vous observez également une activité et une file d’attente importantes sur
le disque, augmentez la mémoire vive de votre système (ou cherchez des scans de
table qui peuvent être éliminés par la création d’index).
MSSQL:Databases\Transactions/sec
Nombre de transactions par seconde. Le choix de l’instance de compteur permet
d’afficher toutes les transactions, ou les transactions dans un contexte de base particulier, ce qui est utile pour tracer l’activité comparative de vos bases de données, et
l’activité dans tempdb. Une utilisation régulière de ce compteur vous permet de
connaître l’activité moyenne de votre serveur, à travers le temps et durant les
périodes de la journée, ainsi que de détecter les augmentations de charge. Une valeur
élevée de transactions par seconde, avec des résultats raisonnables d’autres compteurs (utilisation du disque, pourcentage d’activité des processeurs) indique une
machine qui travaille bien. Un bon signe de l’effectivité de vos efforts d’optimisation
d’un serveur est l’augmentation du nombre de transactions par seconde, liée à la
diminution de la charge des processeurs.
Une quantité importante de transactions dans tempdb indique généralement soit
un recours fréquent aux tables temporaires dans le code, soit un fonctionnement en
niveau d’isolation snapshot. Vous pouvez vérifier que cette activité n’est pas due à
une création de tables de travail internes, destinées à résoudre des plans de requête,
en observant le compteur MSSQL:Acces Methods\Worktables Created/sec, qui indique le nombre de tables de travail créées par seconde. Les tables de travail stockent
des résultats intermédiaires lors de l’exécution de code SQL. Vous pouvez aussi vous
