4. #JSS2013
Présentation
Leader SGBD reconnu en France
www.capdata.fr
Conseil
Service
Formation
DBA à distance
Management d’infrastructures IT hétérogènes
www.osmozium.com
Support Management
Technical Management
Data Management
Production Management
David Baffaleuf
http://blog.capdata.fr
dbaffaleuf@capdata-osmozium.com
@dbaffaleuf
Benjamin Vesan
http://blog.capdata.fr
bvesan@capdata-osmozium.com
@captain_BV
http://www.youtube.com/user/CapdataTV/
8. #JSS2013
Résumé Problème n°1
• Un UPDATE contre un SELECT
• Vérification des attentes
• Création d’un index conseillé par
l’optimiseur
• Passage en mode RCSI
9. #JSS2013
Les leçons du problème n°1
• Utiliser les attentes pour comprendre d’où vient la
contention.
• Penser à les réinitialiser sinon elles ne veulent plus rien
dire.
• Ne pas croire tout ce que dit l’optimiseur (ou DTA). Vérifier
l’impact sur les mises à jour.
• Le passage en mode RCSI va fragmenter les indexes. Il faut
penser à les reconstruire tout de suite après.
11. Résumé Problème n°2
• Recompilation à outrance
• Suppression de la mise à jour automatique des statistiques
#JSS2013
d’une table
• Analyse des lenteurs via les statistiques d’exécution et le
plan d’exécution
• Création d’indexe filtré pour aider l’Optimizer à estimer les
coûts.
12. Les leçons du problème n°2
• Les attentes restent le meilleur moyen d’analyser un problème !
• Le réflexe « Mise à jour des Statistiques » n’est pas toujours payant.
• La mise à jour automatique des Statistiques à ses limites
• Une compilation est coûteuse, surtout lorsqu’elle consomme
#JSS2013
beaucoup de mémoire
• Une statistique, même multi colonnes, peut ne pas suffire à
représenter les données
• Indexes et statistiques filtrés sont de très bons objets de gestion de
performance
14. Résumé Problème n°3
• Utilisation d’une UDF scalaire dans une jointure
• Remplacée par une jointure simple
• Baisse du query memory grant en annulant le tri.
• Une information métier vient nous aider à aller encore plus vite.
• Mise en place du caching de tables temporaires.
• Enfin mesure des effets d’une mauvaise répartition des données
#JSS2013
dans une table.
15. Les leçons du problème n°3
• Scalar UDF =
• Connaître la logique métier.
• Coder en procédures stockées… aussi pour
le caching des tables tempo.
• Connaître les données.
#JSS2013
16. #JSS2013
Les outils
• Big Adventure Works:
http://sqlblog.com/blogs/adam_machanic/archive/2011/10/17/thinking-big-adventure.
aspx
• SQL Query Stress: http://www.datamanipulation.net/sqlquerystress/
• SQL Sentry Plan Explorer: http://www.sqlsentry.net/plan-explorer/sql-server-query-
view.asp