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
Monsieur, Blabla bla bla perte de service Blabla bla bla service eCommerce inaccessible blabla bla situation très grave blabla bla votre responsabilité blabla bla bases de données inopérationnelles blabla bla licenciement blabla bla faute grave blabla bla blabla bla blabla bla blabla bla blabla bla blabla bla blabla bla blabla bla Monsieur, Blabla bla bla perte de service Blabla bla bla service eCommerce inaccessible blabla bla situation très grave blabla bla votre responsabilité blabla bla bases de données inopérationnelles blabla bla licenciement blabla bla faute grave blabla bla blabla bla blabla bla blabla bla blabla bla blabla bla blabla bla blabla bla
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émo 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 démo 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 démo 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 démo 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 Mode de compatibilité Optimisation Aucune Active SQL Trace Profiler Replay Activation du Query Store
SQLSaturday Paris 2016 démo 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é 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 Query Store : notre avis Alors Sarah, qu’est ce que tu en penses au final ?
SQLSaturday Paris 2016 Sarah Bessard
SQLSaturday Paris 2016 Philippe GEIGER Blog Courriel 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 fr/documentation/articles/sql-database-query- performance/ fr/documentation/articles/sql-database-query- performance/ compare-showplan-option/ compare-showplan-option/
SQLSaturday Paris 2016 Et en plus vous pouvez gagner des cadeaux ! Donnez votre avis sur les sessions :
SQLSaturday Paris 2016 Les rapports en quelques mots VueDescription Requêtes en régression Identifie les requêtes dont les métriques d’exécution ont récemment régressé. Utilisez cette vue pour mettre en corrélation les problèmes de performances observés dans votre application avec les requêtes réelles qui ont besoin d’être corrigées ou améliorées. Requêtes les plus consommatrices de ressources Choisissez une mesure d’exécution présentant un intérêt et identifiez les requêtes qui ont enregistré les valeurs les plus extrêmes sur un intervalle de temps donné. Utilisez cette vue pour concentrer votre attention sur les requêtes les plus pertinentes, qui ont le plus fort impact sur la consommation en ressources de base de données. Suivi des requêtes en temps réel Suit l’exécution des requêtes les plus importantes en temps réel. En règle générale, vous utilisez cette vue quand certaines de vos requêtes sont soumises à des plans forcés et que vous voulez vérifier que les performances des requêtes sont stables. Consommation globale des ressources Analyse la consommation totale de ressources pour la base de données par en lecture, CPU, mémoire Utilisez cette vue pour identifier des modèles de ressources (charges de travail diurnes/nocturnes) et optimiser la consommation globale pour votre base de données.