SlideShare une entreprise Scribd logo
#JSS2014
Les journées
SQL Server 2014
Un événement organisé par GUSS
#JSS2014
Les journées
SQL Server 2014
Un événement organisé par GUSS
Performance: Les fausses bonnes idées
#JSS2014
Merci à nos sponsors
#JSS2014
Présentation
Leader SGBD reconnu en France
www.capdata.fr
 Conseil
 Service
 Formation
 DBA à distance
Management d’infrastructures IT hétérogènes
www.osmozium.com
 Support Management
 Technical Management
 Data Management
 Production Management
#sqlhelp
http://blog.capdata.fr
http://www.youtube.com/user/CapdataTV/
Benjamin Vesan
bvesan@capdata-osmozium.com
@captain_BV
#JSS2014
• Fausse bonne idée ?
• Démo Variables Tables
• Démo CXPACKET
• Démo Missing Indexes
• Démo ASYNC_NETWORK_IO
• Démo Requêtes Lentes
Agenda
#JSS2014
• Appliquer une résolution empirique
• Suivre les conseils d’une source externe (blog, forum).
Fausse bonne idée ?
#JSS2014
• SQL Server, c’est au moins 7 versions, sur plus de vingt ans.
• Le moteur a considérablement évolué, certaines faiblesses et lacunes
d’anciennes versions n’existent plus, et les solutions historiques de résolution
des problèmes de performance peuvent ne plus être pertinentes.
Mythes et idées ayant la vie dure 1/4
#JSS2014
Beaucoup d’informations incorrectes sont suivies
• Articles anciens devenus obsolètes
• Confusion lorsque des experts ont des avis opposés (et conflictuels)
• Règle du Net: « Nombre d’apparitions fait loi »
Mythes et idées ayant la vie dure 2/4
#JSS2014
Les nouvelles fonctionnalités d’une version de SQL Server ont donné lieu à des
fantasmes, potentiellement devenues solutions universelles aux problèmes de
performances.
Exemples:
• ColumnStore Index
• Snapshot Isolation
Mythes et idées ayant la vie dure 3/4
#JSS2014
SQL Server n’est pas implémenté comme d’autres moteurs. Les préconisations
concernant d’autres moteurs peuvent ne pas être pertinentes pour SQL Server.
Exemples:
• Concurrence d’accès
• Escalade de verrous
• Gestion du parallélisme
• Fragmentation
• …
Mythes et idées ayant la vie dure 4/4
#JSS2014
• Ne pas analyser la cause exacte d’un problème, c’est risquer de passer à côté
de la cause racine, et de ne pas résoudre le problème.
• Appliquer une solution empirique, c’est risquer d’aggraver le problème.
Empirique VS Analytique
#JSS2014
Effet Démo
Ordinateur portable
+
Machine Virtuelle
+
Disques SSD
+
Forte sollicitation
Des ressources
+
Scénarios particuliers
=
#JSS2014
Démo
Cas concret : Variables Tables
#JSS2014
• Ce ne sont pas des tables en mémoire
• Pas de Statistiques
• Pas adaptées à une grosse volumétrie
• Tables Hekaton à partir de 2014 (Enterprise Edition)
Cas concret : Variables Tables
#JSS2014
Démo
Cas concret : CXPACKET
#JSS2014
Fausse bonne idée:
• Max Degree Of Parallelism à 1
Attitude correcte:
• Comprendre les raisons du CXPACKET, et les requêtes en cause
• Utiliser les leviers Cost threshold for Parallelism et OPTION (MAXDOP)
• Regarder la contention CPU associée
Cas concret : CXPACKET
#JSS2014
Démo
Cas concret : ASYNC_NETWORK_IO
#JSS2014
Fausse bonne idée:
• Blâmer l’infrastructure réseau et ne rien faire en base !
Attitude correcte:
• Identifier le ou les traitements victimes de cette attente,
• Comprendre le fonctionnement du DataReader, et voir comment adapter le
traitement.
Cas concret : ASYNC_NETWORK_IO
#JSS2014
Démo
Cas concret : Missing Indexes
#JSS2014
Fausse bonne idée:
• Suivre sans recul les recommandations du Missing Indexes.
Pourquoi ?
• Le MI ne sait pas ordonner la liste des colonnes
• Il ne tient pas compte de l’impact sur l’activité transactionnelle sur la table
• Il n’ira jamais aussi loin que la (rapide) analyse fonctionnelle de la requête.
Cas concret : Missing Indexes
#JSS2014
Démo
Cas concret : Slow Queries
#JSS2014
Fausse bonne idée:
• Faire l’amalgame entre requêtes lourdes/lentes et requêtes qui contribuent à
la charge sur l’instance.
• Se limiter à Activity Monitor pour le suivi de performances
Attitude correcte:
• Revenir aux tâches en attente, et en cours d’exécution.
Cas concret : Slow Queries
#JSS2014
• Méfiez-vous des conseils empiriques
• Préférez les approches scientifiques: Théorie, Tests, Validation
• Restez conscient de la portée d’une modification
– Niveau instance: tous les traitements
– Niveau objet: tous les traitements liés
– Niveau requête: concurrence à l’exécution
• Utilisez les outils de diagnostic intégrés à SQL Server: DMVs et DMF
 Session de Christophe Laporte
Conclusion
#JSS2014#JSS2014
#JSS2014#JSS2014
Les évaluations des sessions, c’est important !!
…Et en plus on peut gagner des cadeaux
http://GUSS.Pro/jss

Contenu connexe

PPTX
JSS2014 – Point sur les options de stockage dans Azure
PPTX
Journées SQL Server 3 problèmes de performance
PPT
SaaS Cloud Computing Solutions-as-a-Service - Convention des Décideurs IBM - ...
PDF
Introduction au Cloud Computing
PPT
Parallel Computing
PPTX
JSS2015 - Keynote jour 1
PPTX
JSS2014 - StreamInsight
PPTX
Présentation JSS2015 - Le Query Store de SQL Server 2016
JSS2014 – Point sur les options de stockage dans Azure
Journées SQL Server 3 problèmes de performance
SaaS Cloud Computing Solutions-as-a-Service - Convention des Décideurs IBM - ...
Introduction au Cloud Computing
Parallel Computing
JSS2015 - Keynote jour 1
JSS2014 - StreamInsight
Présentation JSS2015 - Le Query Store de SQL Server 2016

Similaire à JSS2014 – Performances et fausses bonnes idées (11)

PPTX
[JSS2015] Query Store
PPTX
Jss2014 performance counters and dmvs
PPTX
JSS2014 – Performances et DMV
PPTX
SQL Server et les développeurs
PPTX
JSS2013 : Statistiques
PPTX
JSS2014 – Infrastructure et Always-On
PDF
Big Data & BI : Retour d'expérience
PPTX
Cloud et BI, quelle architecture pour 2014 ?
PPTX
JSS2014 – Cloud et BI, quelle architecture pour 2014 ?
PPTX
JSS2013 : Hekaton
PPTX
Développez des applications de base de données de façon plus efficace avec SQ...
[JSS2015] Query Store
Jss2014 performance counters and dmvs
JSS2014 – Performances et DMV
SQL Server et les développeurs
JSS2013 : Statistiques
JSS2014 – Infrastructure et Always-On
Big Data & BI : Retour d'expérience
Cloud et BI, quelle architecture pour 2014 ?
JSS2014 – Cloud et BI, quelle architecture pour 2014 ?
JSS2013 : Hekaton
Développez des applications de base de données de façon plus efficace avec SQ...
Publicité

Plus de GUSS (20)

PPTX
GUSS - Les IO dans SQL Server (en partenariat avec DataCore)
PPTX
Bots & Cognitive Intelligence (Meetup GUSS & AZUG FR)
PPTX
JSS2015 - Machine Learning like a boss
PPTX
GUSS - CRITEO Meetup Scale SQL for the Web
PPTX
JSS2015 - Keynote jour 2
PDF
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
PPTX
[JSS2015] Power BI Dev
PPTX
[JSS2015] Nouveautés SQL Server 2016:Sécurité,Temporal & Stretch Tables
PPTX
[JSS2015] 3 DMV's pour evaluer les indexs
PPTX
[JSS2015] Power BI: Nouveautés archi et hybrides
PPTX
[JSS2015] Infra bi#4 - le scale out
PPTX
[JSS2015] In memory and operational analytics
PPTX
[JSS2015] Eradiction des deadlocks
PPTX
[JSS2015] Architectures Lambda avec Azure Stream Analytics
PPTX
[JSS2015] - Azure automation
PPTX
[JSS2015] AlwaysOn 2016
PPTX
[JSS2015] - Document db et nosql
PDF
[JSS2015] x events
PPTX
[JSS2015] Nouveautés SSIS SSRS 2016
PPTX
JSS2014 – Hive ou la convergence entre datawarehouse et Big Data
GUSS - Les IO dans SQL Server (en partenariat avec DataCore)
Bots & Cognitive Intelligence (Meetup GUSS & AZUG FR)
JSS2015 - Machine Learning like a boss
GUSS - CRITEO Meetup Scale SQL for the Web
JSS2015 - Keynote jour 2
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
[JSS2015] Power BI Dev
[JSS2015] Nouveautés SQL Server 2016:Sécurité,Temporal & Stretch Tables
[JSS2015] 3 DMV's pour evaluer les indexs
[JSS2015] Power BI: Nouveautés archi et hybrides
[JSS2015] Infra bi#4 - le scale out
[JSS2015] In memory and operational analytics
[JSS2015] Eradiction des deadlocks
[JSS2015] Architectures Lambda avec Azure Stream Analytics
[JSS2015] - Azure automation
[JSS2015] AlwaysOn 2016
[JSS2015] - Document db et nosql
[JSS2015] x events
[JSS2015] Nouveautés SSIS SSRS 2016
JSS2014 – Hive ou la convergence entre datawarehouse et Big Data
Publicité

JSS2014 – Performances et fausses bonnes idées

  • 1. #JSS2014 Les journées SQL Server 2014 Un événement organisé par GUSS
  • 2. #JSS2014 Les journées SQL Server 2014 Un événement organisé par GUSS Performance: Les fausses bonnes idées
  • 4. #JSS2014 Présentation Leader SGBD reconnu en France www.capdata.fr  Conseil  Service  Formation  DBA à distance Management d’infrastructures IT hétérogènes www.osmozium.com  Support Management  Technical Management  Data Management  Production Management #sqlhelp http://blog.capdata.fr http://www.youtube.com/user/CapdataTV/ Benjamin Vesan [email protected] @captain_BV
  • 5. #JSS2014 • Fausse bonne idée ? • Démo Variables Tables • Démo CXPACKET • Démo Missing Indexes • Démo ASYNC_NETWORK_IO • Démo Requêtes Lentes Agenda
  • 6. #JSS2014 • Appliquer une résolution empirique • Suivre les conseils d’une source externe (blog, forum). Fausse bonne idée ?
  • 7. #JSS2014 • SQL Server, c’est au moins 7 versions, sur plus de vingt ans. • Le moteur a considérablement évolué, certaines faiblesses et lacunes d’anciennes versions n’existent plus, et les solutions historiques de résolution des problèmes de performance peuvent ne plus être pertinentes. Mythes et idées ayant la vie dure 1/4
  • 8. #JSS2014 Beaucoup d’informations incorrectes sont suivies • Articles anciens devenus obsolètes • Confusion lorsque des experts ont des avis opposés (et conflictuels) • Règle du Net: « Nombre d’apparitions fait loi » Mythes et idées ayant la vie dure 2/4
  • 9. #JSS2014 Les nouvelles fonctionnalités d’une version de SQL Server ont donné lieu à des fantasmes, potentiellement devenues solutions universelles aux problèmes de performances. Exemples: • ColumnStore Index • Snapshot Isolation Mythes et idées ayant la vie dure 3/4
  • 10. #JSS2014 SQL Server n’est pas implémenté comme d’autres moteurs. Les préconisations concernant d’autres moteurs peuvent ne pas être pertinentes pour SQL Server. Exemples: • Concurrence d’accès • Escalade de verrous • Gestion du parallélisme • Fragmentation • … Mythes et idées ayant la vie dure 4/4
  • 11. #JSS2014 • Ne pas analyser la cause exacte d’un problème, c’est risquer de passer à côté de la cause racine, et de ne pas résoudre le problème. • Appliquer une solution empirique, c’est risquer d’aggraver le problème. Empirique VS Analytique
  • 12. #JSS2014 Effet Démo Ordinateur portable + Machine Virtuelle + Disques SSD + Forte sollicitation Des ressources + Scénarios particuliers =
  • 13. #JSS2014 Démo Cas concret : Variables Tables
  • 14. #JSS2014 • Ce ne sont pas des tables en mémoire • Pas de Statistiques • Pas adaptées à une grosse volumétrie • Tables Hekaton à partir de 2014 (Enterprise Edition) Cas concret : Variables Tables
  • 16. #JSS2014 Fausse bonne idée: • Max Degree Of Parallelism à 1 Attitude correcte: • Comprendre les raisons du CXPACKET, et les requêtes en cause • Utiliser les leviers Cost threshold for Parallelism et OPTION (MAXDOP) • Regarder la contention CPU associée Cas concret : CXPACKET
  • 17. #JSS2014 Démo Cas concret : ASYNC_NETWORK_IO
  • 18. #JSS2014 Fausse bonne idée: • Blâmer l’infrastructure réseau et ne rien faire en base ! Attitude correcte: • Identifier le ou les traitements victimes de cette attente, • Comprendre le fonctionnement du DataReader, et voir comment adapter le traitement. Cas concret : ASYNC_NETWORK_IO
  • 19. #JSS2014 Démo Cas concret : Missing Indexes
  • 20. #JSS2014 Fausse bonne idée: • Suivre sans recul les recommandations du Missing Indexes. Pourquoi ? • Le MI ne sait pas ordonner la liste des colonnes • Il ne tient pas compte de l’impact sur l’activité transactionnelle sur la table • Il n’ira jamais aussi loin que la (rapide) analyse fonctionnelle de la requête. Cas concret : Missing Indexes
  • 22. #JSS2014 Fausse bonne idée: • Faire l’amalgame entre requêtes lourdes/lentes et requêtes qui contribuent à la charge sur l’instance. • Se limiter à Activity Monitor pour le suivi de performances Attitude correcte: • Revenir aux tâches en attente, et en cours d’exécution. Cas concret : Slow Queries
  • 23. #JSS2014 • Méfiez-vous des conseils empiriques • Préférez les approches scientifiques: Théorie, Tests, Validation • Restez conscient de la portée d’une modification – Niveau instance: tous les traitements – Niveau objet: tous les traitements liés – Niveau requête: concurrence à l’exécution • Utilisez les outils de diagnostic intégrés à SQL Server: DMVs et DMF  Session de Christophe Laporte Conclusion
  • 25. #JSS2014#JSS2014 Les évaluations des sessions, c’est important !! …Et en plus on peut gagner des cadeaux http://GUSS.Pro/jss

Notes de l'éditeur

  • #17: « Small queries on one core, Big queries on multiple cores ». IL NE FAUT PAS CHERCHER A FAIRE DISPARAITRE COMPLETEMENT CXPACKET !!!
  • #18: Exemple simple de RBAR avec un gros SELECT lancé depuis Management Studio en local. Observation des attentes liées: ASYNC_NETWORK_IO. Exemple avec un petit programme en C qui consomme les lignes les unes après les autres. Même programme lancé en consommant les lignes par lot, et l’attente disparaît.
  • #26: On parlait des speakers, il y a une chose qui leur tient à cœur !