Upload
david-baffaleuf
View
79
Download
1
Embed Size (px)
Citation preview
#JSS2013
Les journées
SQL Server 2013
Un événement organisé par GUSS
3 problèmes de performanceBenjamin VESAN David BAFFALEUF
#JSS2013
PrésentationLeader SGBD reconnu en Francewww.capdata.fr Conseil Service Formation DBA à distance
Management d’infrastructures IT hétérogèneswww.osmozium.com Support Management Technical Management Data Management Production Management
http://www.youtube.com/user/CapdataTV/
David Baffaleufhttp://[email protected] @dbaffaleuf
Benjamin Vesanhttp://[email protected] @captain_BV
#JSS2013
Problème n°1
• Démo, résumé, élément clés…
Problème n°2
• Démo, résumé, élément clés…
Problème n°3
• Démo, résumé, élément clés…
Agenda
#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
#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.
#JSS2013
Résumé Problème n°2• Recompilation à outrance• Suppression de la mise à jour automatique des
statistiques 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.
#JSS2013
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 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
#JSS2013
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 dans une table.
#JSS2013
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
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