SlideShare une entreprise Scribd logo
1  sur  30
Troubleshooting & Tuning
SQL
Yanick Mezui
Senior PFE
Microsoft France

Frédéric Pichaut
Senior Escalation Egineer
Microsoft France

Bases de données/Data management
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
METHODOLOGIE
Sous titre

#mstechdays

Bases de données/ Data management
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
Comment aborder une requête longue

#mstechdays

Bases de données/ Data management
OUTILS DE COLLECTE

#mstechdays

Bases de données/ Data management
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
OUTILS D’ANALYSE

#mstechdays

Bases de données/ Data management
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
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
COLLECTE & ANALYSE DE
PERFORMANCE AVEC PERFSTATS
SCRIPTS, PAL & SQLNEXUS
#mstechdays

Bases de données/ Data management
LES STATISTIQUES

#mstechdays

Bases de données/ Data management
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
AUTO-UPDATE STATISTICS

#mstechdays

Bases de données/ Data management
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
Exemples
• Sur une table avec 4 partitions

• Ajout d’une 5eme partition
#mstechdays

Bases de données/ Data management
NEW CARDINALITY ESTIMATION

#mstechdays

Bases de données/ Data management
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
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
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
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
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
Exemples

#mstechdays

Bases de données/ Data management
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
Qu’est-ce qui a été fait?

#mstechdays

Bases de données/ Data management
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
–
Statistiques Incrémentales
New ce

#mstechdays

Bases de données/ Data management
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
Digital is
business

Contenu connexe

En vedette

L'ERP Dynamics AX 2012 : Améliorez votre adoption et votre productivité via l...
L'ERP Dynamics AX 2012 : Améliorez votre adoption et votre productivité via l...L'ERP Dynamics AX 2012 : Améliorez votre adoption et votre productivité via l...
L'ERP Dynamics AX 2012 : Améliorez votre adoption et votre productivité via l...Microsoft Ideas
 
Microsoft dynamics ax 2012 development introduction part 1/3
Microsoft dynamics ax 2012 development introduction part 1/3Microsoft dynamics ax 2012 development introduction part 1/3
Microsoft dynamics ax 2012 development introduction part 1/3Ali Raza Zaidi
 
Une gestion encore plus efficace avec l'ERP Microsoft Dynamics NAV 2015
Une gestion encore plus efficace avec l'ERP Microsoft Dynamics NAV 2015Une gestion encore plus efficace avec l'ERP Microsoft Dynamics NAV 2015
Une gestion encore plus efficace avec l'ERP Microsoft Dynamics NAV 2015PRODWARE
 
Introduction to ERP & Microsoft Dynamics AX overview
Introduction to ERP & Microsoft Dynamics AX overviewIntroduction to ERP & Microsoft Dynamics AX overview
Introduction to ERP & Microsoft Dynamics AX overviewSaptha Wanniarachchi
 

En vedette (6)

L'ERP Dynamics AX 2012 : Améliorez votre adoption et votre productivité via l...
L'ERP Dynamics AX 2012 : Améliorez votre adoption et votre productivité via l...L'ERP Dynamics AX 2012 : Améliorez votre adoption et votre productivité via l...
L'ERP Dynamics AX 2012 : Améliorez votre adoption et votre productivité via l...
 
Microsoft dynamics ax 2012 development introduction part 1/3
Microsoft dynamics ax 2012 development introduction part 1/3Microsoft dynamics ax 2012 development introduction part 1/3
Microsoft dynamics ax 2012 development introduction part 1/3
 
Une gestion encore plus efficace avec l'ERP Microsoft Dynamics NAV 2015
Une gestion encore plus efficace avec l'ERP Microsoft Dynamics NAV 2015Une gestion encore plus efficace avec l'ERP Microsoft Dynamics NAV 2015
Une gestion encore plus efficace avec l'ERP Microsoft Dynamics NAV 2015
 
Introduction to ERP & Microsoft Dynamics AX overview
Introduction to ERP & Microsoft Dynamics AX overviewIntroduction to ERP & Microsoft Dynamics AX overview
Introduction to ERP & Microsoft Dynamics AX overview
 
What is ERP
What is ERPWhat is ERP
What is ERP
 
Erp presentation
Erp presentationErp presentation
Erp presentation
 

Similaire à SQL Server : Tuning et Troubleshooting

Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...
Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...
Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...Microsoft Technet France
 
Deep Dive Performance , le In-Memory dans SQL Server
Deep Dive Performance , le In-Memory dans SQL ServerDeep Dive Performance , le In-Memory dans SQL Server
Deep Dive Performance , le In-Memory dans SQL ServerMicrosoft
 
Projet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de donnéesProjet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de donnéesJean-Marc Dupont
 
[JSS2015] Query Store
[JSS2015] Query Store[JSS2015] Query Store
[JSS2015] Query StoreGUSS
 
Le reporting bi dans tous ses états quel outil pour quel usage
Le reporting bi dans tous ses états quel outil pour quel usageLe reporting bi dans tous ses états quel outil pour quel usage
Le reporting bi dans tous ses états quel outil pour quel usageMichael Nokhamzon
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Microsoft
 
Journées SQL Server 3 problèmes de performance
Journées SQL Server 3 problèmes de performanceJournées SQL Server 3 problèmes de performance
Journées SQL Server 3 problèmes de performanceDavid BAFFALEUF
 
Le reporting BI dans tous ses états / quel outil pour quel usage
Le reporting BI dans tous ses états / quel outil pour quel usage Le reporting BI dans tous ses états / quel outil pour quel usage
Le reporting BI dans tous ses états / quel outil pour quel usage Microsoft Technet France
 
2008-09-30 Présentation Générale SQL Server 2008
2008-09-30 Présentation Générale SQL Server 20082008-09-30 Présentation Générale SQL Server 2008
2008-09-30 Présentation Générale SQL Server 2008Patrick Guimonet
 
Les nouveautés stockage dans Windows Server 2012 R2
Les nouveautés stockage dans Windows Server 2012 R2Les nouveautés stockage dans Windows Server 2012 R2
Les nouveautés stockage dans Windows Server 2012 R2Microsoft Technet France
 
Les nouveautés stockage dans Windows Server 2012 R2
Les nouveautés stockage dans Windows Server 2012 R2Les nouveautés stockage dans Windows Server 2012 R2
Les nouveautés stockage dans Windows Server 2012 R2Microsoft
 
Migration des réseaux d agence : les apports de Windows Server 2012 R2
Migration des réseaux d agence : les apports de Windows Server 2012 R2Migration des réseaux d agence : les apports de Windows Server 2012 R2
Migration des réseaux d agence : les apports de Windows Server 2012 R2Microsoft
 
Compatibilité applicative : Comment sécuriser et accélérer votre migration ve...
Compatibilité applicative : Comment sécuriser et accélérer votre migration ve...Compatibilité applicative : Comment sécuriser et accélérer votre migration ve...
Compatibilité applicative : Comment sécuriser et accélérer votre migration ve...Microsoft Technet France
 
BD_Decisionnel_fin-2020tjtgenieindustriel.ppt
BD_Decisionnel_fin-2020tjtgenieindustriel.pptBD_Decisionnel_fin-2020tjtgenieindustriel.ppt
BD_Decisionnel_fin-2020tjtgenieindustriel.pptmarocdakhla135
 
Recommender systems
Recommender systemsRecommender systems
Recommender systemsrecsysfr
 
Ix222 g formation-ibm-informix-administration-de-la-base-de-donnees
Ix222 g formation-ibm-informix-administration-de-la-base-de-donneesIx222 g formation-ibm-informix-administration-de-la-base-de-donnees
Ix222 g formation-ibm-informix-administration-de-la-base-de-donneesCERTyou Formation
 
Business intelligence pour startups
Business intelligence pour startupsBusiness intelligence pour startups
Business intelligence pour startupsSébastien Derivaux
 

Similaire à SQL Server : Tuning et Troubleshooting (20)

Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...
Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...
Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...
 
Deep Dive Performance , le In-Memory dans SQL Server
Deep Dive Performance , le In-Memory dans SQL ServerDeep Dive Performance , le In-Memory dans SQL Server
Deep Dive Performance , le In-Memory dans SQL Server
 
Projet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de donnéesProjet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de données
 
[JSS2015] Query Store
[JSS2015] Query Store[JSS2015] Query Store
[JSS2015] Query Store
 
Le reporting bi dans tous ses états quel outil pour quel usage
Le reporting bi dans tous ses états quel outil pour quel usageLe reporting bi dans tous ses états quel outil pour quel usage
Le reporting bi dans tous ses états quel outil pour quel usage
 
Conversion de devises avec Power Query
Conversion de devises avec Power QueryConversion de devises avec Power Query
Conversion de devises avec Power Query
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016
 
Procima deck 7 May 2014
Procima deck 7 May 2014Procima deck 7 May 2014
Procima deck 7 May 2014
 
Journées SQL Server 3 problèmes de performance
Journées SQL Server 3 problèmes de performanceJournées SQL Server 3 problèmes de performance
Journées SQL Server 3 problèmes de performance
 
Le reporting BI dans tous ses états / quel outil pour quel usage
Le reporting BI dans tous ses états / quel outil pour quel usage Le reporting BI dans tous ses états / quel outil pour quel usage
Le reporting BI dans tous ses états / quel outil pour quel usage
 
2008-09-30 Présentation Générale SQL Server 2008
2008-09-30 Présentation Générale SQL Server 20082008-09-30 Présentation Générale SQL Server 2008
2008-09-30 Présentation Générale SQL Server 2008
 
Les nouveautés stockage dans Windows Server 2012 R2
Les nouveautés stockage dans Windows Server 2012 R2Les nouveautés stockage dans Windows Server 2012 R2
Les nouveautés stockage dans Windows Server 2012 R2
 
Les nouveautés stockage dans Windows Server 2012 R2
Les nouveautés stockage dans Windows Server 2012 R2Les nouveautés stockage dans Windows Server 2012 R2
Les nouveautés stockage dans Windows Server 2012 R2
 
Migration des réseaux d agence : les apports de Windows Server 2012 R2
Migration des réseaux d agence : les apports de Windows Server 2012 R2Migration des réseaux d agence : les apports de Windows Server 2012 R2
Migration des réseaux d agence : les apports de Windows Server 2012 R2
 
Compatibilité applicative : Comment sécuriser et accélérer votre migration ve...
Compatibilité applicative : Comment sécuriser et accélérer votre migration ve...Compatibilité applicative : Comment sécuriser et accélérer votre migration ve...
Compatibilité applicative : Comment sécuriser et accélérer votre migration ve...
 
BD_Decisionnel_fin-2020tjtgenieindustriel.ppt
BD_Decisionnel_fin-2020tjtgenieindustriel.pptBD_Decisionnel_fin-2020tjtgenieindustriel.ppt
BD_Decisionnel_fin-2020tjtgenieindustriel.ppt
 
Recommender systems
Recommender systemsRecommender systems
Recommender systems
 
Ix222 g formation-ibm-informix-administration-de-la-base-de-donnees
Ix222 g formation-ibm-informix-administration-de-la-base-de-donneesIx222 g formation-ibm-informix-administration-de-la-base-de-donnees
Ix222 g formation-ibm-informix-administration-de-la-base-de-donnees
 
Business intelligence pour startups
Business intelligence pour startupsBusiness intelligence pour startups
Business intelligence pour startups
 
Piloter votre performance
Piloter votre performancePiloter votre performance
Piloter votre performance
 

Plus de Microsoft

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuMicrosoft
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaSMicrosoft
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileMicrosoft
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Microsoft
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Microsoft
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Microsoft
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à ZMicrosoft
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Microsoft
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsMicrosoft
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Microsoft
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryMicrosoft
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Microsoft
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Microsoft
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Microsoft
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET CoreMicrosoft
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Microsoft
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Microsoft
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursMicrosoft
 
Les nouveautés de C# 7
Les nouveautés de C# 7Les nouveautés de C# 7
Les nouveautés de C# 7Microsoft
 

Plus de Microsoft (20)

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieu
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaS
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobile
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à Z
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs Analytics
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site Recovery
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET Core
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeurs
 
Les nouveautés de C# 7
Les nouveautés de C# 7Les nouveautés de C# 7
Les nouveautés de C# 7
 

SQL Server : Tuning et Troubleshooting

  • 1.
  • 2. Troubleshooting & Tuning SQL Yanick Mezui Senior PFE Microsoft France Frédéric Pichaut Senior Escalation Egineer Microsoft France Bases de données/Data management
  • 3. 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
  • 5. 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
  • 6. Comment aborder une requête longue #mstechdays Bases de données/ Data management
  • 7. OUTILS DE COLLECTE #mstechdays Bases de données/ Data management
  • 8. 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
  • 9. OUTILS D’ANALYSE #mstechdays Bases de données/ Data management
  • 10. 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
  • 11. 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
  • 12. COLLECTE & ANALYSE DE PERFORMANCE AVEC PERFSTATS SCRIPTS, PAL & SQLNEXUS #mstechdays Bases de données/ Data management
  • 13. LES STATISTIQUES #mstechdays Bases de données/ Data management
  • 14. 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
  • 15. AUTO-UPDATE STATISTICS #mstechdays Bases de données/ Data management
  • 16. 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
  • 17. Exemples • Sur une table avec 4 partitions • Ajout d’une 5eme partition #mstechdays Bases de données/ Data management
  • 18. NEW CARDINALITY ESTIMATION #mstechdays Bases de données/ Data management
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. 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
  • 25. 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
  • 26. Qu’est-ce qui a été fait? #mstechdays Bases de données/ Data management
  • 27. 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 –
  • 29. 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

Notes de l'éditeur

  1. Plus de 100 DMVs.Blog CSS décrivant les Waits et les actions à mener:http://blogs.msdn.com/b/psssql/archive/2009/11/03/the-sql-server-wait-type-repository.aspxMémoire (lescompteursimportants)Memory/Available MBytesSQLServer:Memory Manager/Target Server Memory (KB)SQLServer:Memory Manager/Total Server Memory (KB)Buffer Manager:Page Life Expectancy (valeurtypique 300 sec pour OLTP)Buffer Manager: Lazy Writes/sec (valeurtypique < 20)Buffer Manager:Page Reads/sec (valeurtypique < 90)Buffer Manager:Page Writes/sec (valeurtypique < 90)DisquesLogicalDisk:Avg. Disk sec/ReadLogicalDisk:Avg. Disk sec/WriteProcesseursProcessor: % Processor TimeProcessor: % Privileged TimeProcessor: % User TimeProcess: % Processor Time:sqlservrSQL Statistics: SQL Compilations/sec & SQL recompilations/secSQL Trace / SQL ProfilerAssezlourd à gérersurtoutsi on a un peu de charge sur le serveur.Bien veillez à filtrer les évènements qui nous interessent.SQL Profiler Peux faire tomber un serveur.SQL Server Profiler Deprecated.SQL Trace estl’outil de collecte.SQL Profiler estl’outilgraphique. Commeilestgraphiqueilpeut rater des evenements. Pas designer pour regarder les performances d’un serveur de Prod.XEventsEnvirons 600 eventssur SQL Server 2012
  2. PAL: On peutdéfinirsespropresfichiers de seuilsadaptés au workload de sesenvironnements.SQLNexus 4, utilisé pendant les demos n’est pas disponible au grand public.RML utilities 09.04.005 permetcependant aux clients avec SQLNexus 3.0.0.0 ( de Codeplex) d’analyser des traces SQL Server 2012.PAL Telechargeablesurcodeplex (http://pal.codeplex.com/)SQLNexusTelechargeablesurcodeplex (http://sqlnexus.codeplex.com/)RML utilities Telechargeablesur le web (site de telechargement Microsoft http://www.microsoft.com/en-us/download/details.aspx?id=4511)
  3. Given a parameterized SQL query template that defines a relational selectivity space, and a choice of database engine, the Picasso tool automatically generates a variety of diagrams that characterize the behavior of the engine’s optimizer over this space.
  4. The cost surface with old CE looks very bad – notice the “cliff" in the picture results from the fact that the cost of the optimal plan decreases when selectivity increases, which means for some area we have a defect in how we did CE. The underlying problem is the consistency of Cardinality Estimation for joins: For an arbitrary join graph that represents join of N tables, we estimate the cardinality of the graph one edge at a time.Key Point: Consistency means the cardinality of the join graph should be independent of the order in which we examine the graph. The old CE violates this consistency property.
  5. Hypothèse de confinement:Les requêtes concernent des données qui existent.Pour un prédicat Column-Equal-Constant, nous supposons que la constante existe dans le colonne.Pour une requête equijoin sur deux tables, nous supposons que sur la colonne de jointure les valeurs d’un coté de la jointure existent de l’autre coté.Hypothèse d’indépendance:Les données de différentes colonnes sont distribuées de façon indépendantesPour la sélectivité (Sel)Suivant deux prédicats P, Q qui n’impliquent pas les même colonnesSel(P ^ Q) = Sel(P) * Sel(Q)Pour le nombre de valeurs distinctes (NDV)Suivant deux colonnes c1, c2NDV(c1, c2) = NDV(c1) * NDV(c2)Sauf si une stats multi-colonnes indique une autre valeur
  6. Essentially, applying containment to “extrapolate” histogram
  7. A Cardinality calculator specifies what strategy will be used to compute cardinalityMotivation:1) Easy Diagnosis:since problems in CE are at the root of many plan choice issues, it is important to be able to diagnose why we chose a particular estimate. We can think of this process in two layers or steps:- We want trace output that will give us a general idea of the “thought process” behind a particular estimate. This should act as a good starting point for any investigation.- Assuming the trace output suggests some potential trouble spot, it should be fairly easy to find the relevant part of the code for a more detailed investigation. 2) Maintain and extend codeWe would also like to be able to add on to the code in future releases. The same structure which makes the code easy to debug should also make it easy to extend: If we make it easier to understand how the original set of pieces fit together, it should be easier to see where to insert a new piece.Example: adding a new strategy (calculator)