SQL Server : Tuning et Troubleshooting

2 073 vues

Publié le

Performing or not performing that is the question ! Comment diagnostiquer les problèmes de performance, les bonnes pratiques. Configurations, trace flags, indexes, statistiques…

Speakers : Yanick Mezui (Microsoft), Frederic Pichaut (Microsoft)

Publié dans : Technologie
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

SQL Server : Tuning et Troubleshooting

  1. 1. Troubleshooting & Tuning SQL Yanick Mezui Senior PFE Microsoft France Frédéric Pichaut Senior Escalation Egineer Microsoft France Bases de données/Data management
  2. 2. Donnez votre avis ! Depuis votre smartphone sur : http://notes.mstechdays.fr De nombreux lots à gagner toute les heures !!! Claviers, souris et jeux Microsoft… Merci de nous aider à améliorer les Techdays ! #mstechdays Bases de données/ Data management
  3. 3. METHODOLOGIE Sous titre #mstechdays Bases de données/ Data management
  4. 4. Méthodologie • L’analyse de performance est un perpétuel recommencement • Quand on pense en avoir fini, un changement survient Capture Charge du système Analyse Reglages #mstechdays Bases de données/ Data management
  5. 5. Comment aborder une requête longue #mstechdays Bases de données/ Data management
  6. 6. OUTILS DE COLLECTE #mstechdays Bases de données/ Data management
  7. 7. Les outils de collecte • • • • • Dynamic Management Views (DMVs) – sys.dm_os_wait_stats – sys.dm_os_waiting_tasks Performance Monitor (perfmon) – Mémoire – Disques – Processeurs SQL Trace / SQL Server Profiler – Collecte des events SQL Server – La collecte peut s’effectuer côté client – La collecte peut s’effectuer côté serveur – La Trace Profiler rajoute un overhead sur le serveur Extended Events (Xevent ou XE) – Repose sur l’infrastructure de tracing Windows ETW – Flexibilité du schema des events – Collecte performante et non intrusive (overhead très limité sur le serveur 5% CPU pour 20000 events/sec) Automatisation de la collecte – SQLDiag – PerfStatsScripts – PSSDiag #mstechdays Server Level dm_exec_* Execution of user code and associated connections dm_os_* Memory, locking & scheduling dm_tran_* Transactions & isolation dm_io_* I/O on network and disks dm_db_* Databases and database objects Bases de données/ Data management Component Level dm_repl_* Replication dm_broker_* SQL Service Broker dm_fts_* Full Text Search dm_qn_* Query Notifications dm_clr_* Common Language Runtime
  8. 8. OUTILS D’ANALYSE #mstechdays Bases de données/ Data management
  9. 9. Les outils d’analyse • • • • Performance Analysis of Logs (PAL) – Automatise l’analyse des compteurs de performance Windows – Utilise un fichier avec des seuils de compteurs de performance – Il existe des fichiers de seuils pour les grands produits Serveurs Microsoft (ex: SQL Server, Exchange, SharePoint, etc.) RML Utilities – Automatise l’analyse de la Trace SQL – ReadTrace – Reporter SQLNexus – Automatise l’analyse des Waits, des blocages, de la trace SQL – Utilise RML utilities pour l’analyse de la trace SQL – Fournit des rapports: • Bottleneck Analysis • Blocking & Wait Statistics • Top Queries (Duration, CPU, Reads, Writes) Extended Events Viewer – En utilisant le query_hash, et les capacités d’aggrégation et de tri du XE Viewer on peut arriver aux mêmes rapports Top Queries (Duration, CPU, Reads, Writes) que SQLNexus #mstechdays Bases de données/ Data management
  10. 10. SQL Premier Field Engineering & Performance • Formations chez Microsoft ou dans vos locaux – SQL Server 2008 Performance Tuning & Optimization – SQL Server 2012 Performance Tuning, Design, Internals & Architecture – SQL Server Hands On Troubleshooting • Transfert d’expertise et Analyse de Performance sur vos environnements – SQL server Performance Tuning & Optimization Clinics #mstechdays Bases de données/ Data management
  11. 11. COLLECTE & ANALYSE DE PERFORMANCE AVEC PERFSTATS SCRIPTS, PAL & SQLNEXUS #mstechdays Bases de données/ Data management
  12. 12. LES STATISTIQUES #mstechdays Bases de données/ Data management
  13. 13. LES STATISTIQUES • L’optimiseur se sert des statistiques pour déterminer la cardinalité (#ligne) d’un résultat • Une page de statistique par indexe, on peut en créer sur des colonnes • Elles peuvent être – Crée/MaJ automatiquement ou manuellement, De façon synchrone ou asynchrone – Basée sur un échantillonnage ou un full scan – Filtrée : CREATE STATISTICS FSPoids ON Products(Weight) WHERE CatID IN (1,2,3); • Elles sont mises à jour en fonction du taux de modification de la table • Pas de statistiques sur les variables tables mais il peut y en avoir sur les tables temporaires • Depuis SQL Server 2008 R2 SP2 et SQL Server 2012 Service Pack 1, DMV sys.dm_db_stats_Properties #mstechdays Bases de données/ Data management
  14. 14. AUTO-UPDATE STATISTICS #mstechdays Bases de données/ Data management
  15. 15. Statistiques Incrémentales / Fast Statistics • Objectif: – Mise à jour plus rapide/fréquente sur des tables avec de larges partitions – Des mises à jour automatiques plus fréquentes • Uniquement sur les tables partitionnées • Une page de statistique par partition • Merge binaire des statistiques de chaque partition pour créer une statistique globale • L’ensemble des pages sont persistante sur disque. • La mise à jour peut être globale ou indépendante par partitions – (500 + 20% de la taille moyenne des partitions) pour la mise à jour de la stat globale – 20% de modification dans une partition -> Auto Stat #mstechdays Bases de données/ Data management
  16. 16. Exemples • Sur une table avec 4 partitions • Ajout d’une 5eme partition #mstechdays Bases de données/ Data management
  17. 17. NEW CARDINALITY ESTIMATION #mstechdays Bases de données/ Data management
  18. 18. Les bases du Query Optimization • Composent de plus en plus critique • L’optimisation des requêtes doit déterminer le chemin le plus efficace avec des workloads très différents (OLTP, DW et DS) • Avoir une performance prédictible • Tous va dépendre des estimations de cardinalité (« Cardinality Estimation » ou CE) #mstechdays Bases de données/ Data management
  19. 19. Picasso Database Optimizer Visualizer • De Database Systems Lab, Indian Institute of Science • Un outils de visualisation graphique • Visualiser et analyser le comportement des optimiseurs • Operationel pour plusieurs moteurs – – – – #mstechdays – Microsoft SQL Server IBM DB2 Oracle Sybase Bases de données/ Data management PostgreSQL
  20. 20. Estimation du coût pour requêtes à 2 variablesServer 2008 R2 SQL Prototype with new CE Le cout ne doit pas diminuer alors que le nombre d’enregistrements retourné augmente #mstechdays Bases de données/ Data management
  21. 21. Problèmes de cardinalités • Ils sont la cause des mauvais choix de plans • On peut les détecter de plusieurs façons – SET STATICS PROFILE ON • Rows, Executes VS EstimateRows, EstimateExecutions – Actual Execution Plan #mstechdays Xevents inaccurate_cardinality_estimate – Bases de données/ Data management
  22. 22. Le Nouveau Model Mathématique Hypothèse d’uniformité: – Dans chaque palier d’histogramme les valeurs distinctes sont équidistantes et ont la même fréquence. Hypothèse de confinement: – Les requêtes concernent des données qui existent. Hypothèse d’indépendance: – Les données de différentes colonnes sont distribuées de façons indépendantes #mstechdays Bases de données/ Data management
  23. 23. Exemples #mstechdays Bases de données/ Data management
  24. 24. Problème de clé ascendante • Qu’est ce que le problème de clé ascendante? – Les données sont ascendantes – Les nouvelles donnés ne sont pas dans l’histogramme • Comment le nouveau CE le solutionne? – Toujours supposer que les valeurs demandées existent – Estimer la cardinalité en utilisant la fréquence moyenne #mstechdays Les mêmes suppositions sont prisent pour les – Bases de données/ Data management
  25. 25. Qu’est-ce qui a été fait? #mstechdays Bases de données/ Data management
  26. 26. Architecture Division de Cardinality Estimation en deux étapes • Étapes 1: Planning Trouver un « cardinality calculator » pour les paramètres • Étapes 2: Exécution Exécution des « calculator » Bénéfices – Meilleur supportabilité Bases de données/ Data management #mstechdays Maintenance et extension plus facile à intégrer –
  27. 27. Statistiques Incrémentales New ce #mstechdays Bases de données/ Data management
  28. 28. Ressources Sessions Data Insights pour les professionnels de l’IT http://aka.ms/itprosql Sessions Data Insights pour les décideurs informatiques http://aka.ms/itdmsql Business Accelerator, un programme sur mesure pour les éditeurs de logiciel http://aka.ms/isvbusacc Un client prêt à témoigner ? Une belle histoire à partager ? Un Nokia Lumia à gagner ! http://aka.ms/cloudosref #mstechdays Bases de données/ Data management
  29. 29. Digital is business

×