Note : 5 ; Bref, mais pointu et complet !
Pour bien fonctionner, l’exécution des requêtes s’appuie sur des plans d’exécution qui sont eux-mêmes optimisés par l’optimiseur du serveur : quel table doit-on requêter en premier, doit-on filtrer avant ou après, utiliser un index ou scanner la table, etc… Et l’optimiseur ne fait pas cela dans le vide, il utilise les statistiques des tables.
Ce court livret qui compte moins de 50 pages ne traite que des statistiques : quelles son-elles, comment sont-elles mises à jour et quand et comment sont-elles exploitées par le moteur de requête. Ce texte est tellement court, que l’auteur parle à plusieurs moment « d’article » dans le texte. Mais bon, il a un ISBN, donc…
Comprendre, c’est bien, savoir agir, c’est mieux ! L’auteur nous initie aux possibilités d’action sur les statistiques : les procédures stockées, les tables de statistiques et histogrammes elles-mêmes ainsi que les activations / désactivations totales et partielles de celles-ci, sans compter les statistiques filtrées.
Le livre compte deux parties, la seconde (un peu plus courte) est une série de problèmes / solutions qui reprennent et parfois approfondissent les points vus dans la première.
Le livre est court et de bonne tenue. J’ai juste deux petits regrets :
- J’aurais aimé une ou deux (pourquoi pas 3 ?) études de cas avec des plans d’exécution, la mise en reliefs des statistiques correspondantes, les actions et la mise en lumière des différences de résultats.
- L’auteur évoque à quelques reprises des outils plus pointus et même des DMV non documentées. On aurait pu y plonger.
Connaître le fonctionnement des statistiques n’est pas un « game changer » la plupart du temps. L’auteur le dit d’ailleurs : par défaut ce que fait SQL Server marche très bien dans la grande majorité des cas. Mais le ratio temps de lecture / amélioration des compétences est vraiment excellent. Pourquoi s’en priver ?
Référence complète : SQL Server Statistics – Holger Schmeling – Simple Talk Publishing 2010 – ISBN :