SQLSaturday Paris 2016
Query Store
ou comment donner de la mémoire à sa base de données
Sarah Bessard
Philippe Geiger
SQLSaturday Paris 2016
Merci à nos sponsors
SQLSaturday Paris 2016
Merci à nos volontaires
SQLSaturday Paris 2016
Query Store : Kesako ?
SQLSaturday Paris 2016
Query Store : son fonctionnement
Query Store
Exécution
Compilation
Stockage
des plans
Statistiques
des
exécutions
Schéma
Query
Store
SQL
Écriture asynchrone
En mémoire
Messages
de compilation
Messages
d’exécution
SQLSaturday Paris 2016
Query Store : comment ça marche ?
Activer Query Store
Query Store collecte les
données
Focus sur les requêtes
« problématiques » et
correction
SQLSaturday Paris 2016
Démarrage de Query Store
SQLSaturday Paris 2016
Query Store : ses options
SQLSaturday Paris 2016
Les rapports dans SQL Server Management Studio
SQLSaturday Paris 2016
Les rapports SSMS
SQLSaturday Paris 2016
Query Store : ses DMV
sys.query_store_query_text
Capture des instructions SQL.
sys.query_context_settings
Différentes combinaisons d’exécution avec les paramètres
utilisés (options SET pouvant influencer les plans, etc.)
sys.query_store_query
Correspondance entre les instructions SQL et le contexte d’exécution
sys.query_store_plan
Informations relatives aux plans SQL Server
utilisées à l’exécution des requêtes.
sys.query_store_runtime_stats_interval
Intervalles de temps créées par le Query Store.
sys.query_store_runtime_stats
Statistiques des plans d’exécution des requêtes pour
intervalles de temps.
SQLSaturday Paris 2016
Usage des DMV
SQLSaturday Paris 2016
Query Store : ses procédures stockées
sys.fn_stmt_sql_handle_from_sql_stmt
sp_query_store_flush_db
sp_query_store_force_plan
sp_query_store_remove_plan
sp_query_store_remove_query
sp_query_store_reset_exec_stats
sp_query_store_unforce_plan
SQLSaturday Paris 2016
Les origines d’invalidation d’un plan :
- Changement structure (ex : suppression d’une colonne)
- Modification d’un index
- Statistiques obsolètes
- Changement du contexte d’exécution (SET)
- Recompile
- xxxxxxxxx
SQLSaturday Paris 2016
Query Store : et ses événements étendus ?
Près de 70
événements étendus
SQLSaturday Paris 2016
Tester A/B
SQLSaturday Paris 2016
Query Store : en cas de la migration
Mettre à jour vers SQL Server 2016
(mode de compatibilité inchangé)
Activer Query Store et capturer les
plans
Mettre le mode de compatibilité à
130
Utiliser Query Store pour forcer rapidement les
anciens plans d’exécution pour toutes les
régressions
SQLSaturday Paris 2016
Query Store : contexte des démos à suivre
Base Test Test Test Test
Mode de compatibilité 100 100 100 130
Optimisation Aucune Aucune Active Active
SQL Trace
Profiler Replay
4
SQL Trace
Profiler Replay
5SQL Trace
Profiler Replay
3
Activation du
Query Store
21
SQLSaturday Paris 2016
Test Migration
SQLSaturday Paris 2016
Query Store : intervenir en cas de régression
1. Identifier la requête problématique
2. Forcer le plan
3. Comparer les plans et analyser les différences
4. Chercher et tester une solution pérenne
5. L’appliquer
6. Supprimer le plan forcé
SQLSaturday Paris 2016
Query Store : d’autres cas d’usage
Corriger des
régressions de plans
Identifier les requêtes
les plus consommatrices
de ressources Tester A/B
Réduire le risque en
cas de mise à jour ou
de maintenance
Améliorer les cas
de charge ad hoc
Correctif
Proactif
SQLSaturday Paris 2016
Sarah Bessard
http://www.dcube.fr
http://www.concatskills.com
sarah.bessard.pro@gmail.com
SQLSaturday Paris 2016
Philippe
GEIGER
Blog
www.pgeiger.net
Courriel
pgeiger@pgeiger.net
Data Platform
Solution Consultant
Accompagnement technique
• Exploitation et administration
• Développement
• Business Intelligence
Formateur
Certifications
Intégration SI
Business Intelligence
CRM
Collaboratif
SQLSaturday Paris 2016
Questions
&
Réponses
SQLSaturday Paris 2016
Query Store : Quelques références
 https://msdn.microsoft.com/en-us/library/cc645993.aspx
 https://azure.microsoft.com/fr-
fr/documentation/articles/sql-database-query-
performance/
 https://www.mssqltips.com/sqlservertip/4095/sql-server-
2016-compare-showplan-option/
SQLSaturday Paris 2016
Et en plus vous
pouvez gagner des
cadeaux !
Donnez votre avis sur les sessions :
http://GUSS.pro/sqlsat

SQL Saturday 510 Paris 2016 - Query Store session - final

  • 1.
    SQLSaturday Paris 2016 QueryStore ou comment donner de la mémoire à sa base de données Sarah Bessard Philippe Geiger
  • 2.
  • 3.
    SQLSaturday Paris 2016 Mercià nos volontaires
  • 4.
  • 5.
    SQLSaturday Paris 2016 QueryStore : son fonctionnement Query Store Exécution Compilation Stockage des plans Statistiques des exécutions Schéma Query Store SQL Écriture asynchrone En mémoire Messages de compilation Messages d’exécution
  • 6.
    SQLSaturday Paris 2016 QueryStore : comment ça marche ? Activer Query Store Query Store collecte les données Focus sur les requêtes « problématiques » et correction
  • 7.
  • 8.
    SQLSaturday Paris 2016 QueryStore : ses options
  • 9.
    SQLSaturday Paris 2016 Lesrapports dans SQL Server Management Studio
  • 10.
  • 11.
    SQLSaturday Paris 2016 QueryStore : ses DMV sys.query_store_query_text Capture des instructions SQL. sys.query_context_settings Différentes combinaisons d’exécution avec les paramètres utilisés (options SET pouvant influencer les plans, etc.) sys.query_store_query Correspondance entre les instructions SQL et le contexte d’exécution sys.query_store_plan Informations relatives aux plans SQL Server utilisées à l’exécution des requêtes. sys.query_store_runtime_stats_interval Intervalles de temps créées par le Query Store. sys.query_store_runtime_stats Statistiques des plans d’exécution des requêtes pour intervalles de temps.
  • 12.
  • 13.
    SQLSaturday Paris 2016 QueryStore : ses procédures stockées sys.fn_stmt_sql_handle_from_sql_stmt sp_query_store_flush_db sp_query_store_force_plan sp_query_store_remove_plan sp_query_store_remove_query sp_query_store_reset_exec_stats sp_query_store_unforce_plan
  • 14.
    SQLSaturday Paris 2016 Lesorigines d’invalidation d’un plan : - Changement structure (ex : suppression d’une colonne) - Modification d’un index - Statistiques obsolètes - Changement du contexte d’exécution (SET) - Recompile - xxxxxxxxx
  • 15.
    SQLSaturday Paris 2016 QueryStore : et ses événements étendus ? Près de 70 événements étendus
  • 16.
  • 17.
    SQLSaturday Paris 2016 QueryStore : en cas de la migration Mettre à jour vers SQL Server 2016 (mode de compatibilité inchangé) Activer Query Store et capturer les plans Mettre le mode de compatibilité à 130 Utiliser Query Store pour forcer rapidement les anciens plans d’exécution pour toutes les régressions
  • 18.
    SQLSaturday Paris 2016 QueryStore : contexte des démos à suivre Base Test Test Test Test Mode de compatibilité 100 100 100 130 Optimisation Aucune Aucune Active Active SQL Trace Profiler Replay 4 SQL Trace Profiler Replay 5SQL Trace Profiler Replay 3 Activation du Query Store 21
  • 19.
  • 20.
    SQLSaturday Paris 2016 QueryStore : intervenir en cas de régression 1. Identifier la requête problématique 2. Forcer le plan 3. Comparer les plans et analyser les différences 4. Chercher et tester une solution pérenne 5. L’appliquer 6. Supprimer le plan forcé
  • 21.
    SQLSaturday Paris 2016 QueryStore : d’autres cas d’usage Corriger des régressions de plans Identifier les requêtes les plus consommatrices de ressources Tester A/B Réduire le risque en cas de mise à jour ou de maintenance Améliorer les cas de charge ad hoc Correctif Proactif
  • 22.
    SQLSaturday Paris 2016 SarahBessard http://www.dcube.fr http://www.concatskills.com sarah.bessard.pro@gmail.com
  • 23.
    SQLSaturday Paris 2016 Philippe GEIGER Blog www.pgeiger.net Courriel pgeiger@pgeiger.net DataPlatform Solution Consultant Accompagnement technique • Exploitation et administration • Développement • Business Intelligence Formateur Certifications Intégration SI Business Intelligence CRM Collaboratif
  • 24.
  • 25.
    SQLSaturday Paris 2016 QueryStore : Quelques références  https://msdn.microsoft.com/en-us/library/cc645993.aspx  https://azure.microsoft.com/fr- fr/documentation/articles/sql-database-query- performance/  https://www.mssqltips.com/sqlservertip/4095/sql-server- 2016-compare-showplan-option/
  • 26.
    SQLSaturday Paris 2016 Eten plus vous pouvez gagner des cadeaux ! Donnez votre avis sur les sessions : http://GUSS.pro/sqlsat

Notes de l'éditeur

  • #6  Query Performance Insight : surcouche de Query Store pour Azure SQL Database Query Store = Magasin de requêtes en français
  • #7 https://msdn.microsoft.com/en-us/library/mt631173.aspx During the read of the Query Store data in-memory and on-disk data are unified transparently.
  • #12 Consommation globale des ressources Principales requêtes consommatrices de ressources Requêtes régressées Requêtes suivies
  • #23 Cas d'usage détaillés: https://msdn.microsoft.com/en-us/library/mt614796.aspx