La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Le support (CSS) Waisso - SQL Server sur le terrain Quelques bases Méthodologie Performance des requêtes Concurrence daccès Problématiques autour de Tempdb.

Présentations similaires


Présentation au sujet: "Le support (CSS) Waisso - SQL Server sur le terrain Quelques bases Méthodologie Performance des requêtes Concurrence daccès Problématiques autour de Tempdb."— Transcription de la présentation:

1

2 Le support (CSS) Waisso - SQL Server sur le terrain Quelques bases Méthodologie Performance des requêtes Concurrence daccès Problématiques autour de Tempdb Quelques outils Ressources Débats et échanges

3 CPR (Critical Problem Résolution) : Équipe mondiale d'ingénieurs dont le but est de trouver des solutions aux problèmes critiques. En étroite collaboration avec les équipes de développement. En Europe : Environ 80 ingénieurs En France : 13 ingénieurs 7 ingénieurs descalade 1 ingénieur en astreinte tous les jours 24x7 Client Ingénieur Support (spécialiste)Responsable Technique de Compte (TAM) Manager Support Manager Situation Critique Ingénieur dEscalade (CPR) Développement de correctifs (QFE) Client Support Groupe de développement

4 4 Nos missions couvrent : Ladministration courante des bases de données Délégation de personnel à temps partiel ou à temps plein Le soutien aux développements Conception et/ou validation de modèles Aide à lécriture et validation du code applicatif T-SQL Les audits et lexpertise Optimisation et Tuning Validation avant Mise En Production Capacity Planning Opérations ponctuelles « pompiers » SQL Server sur le terrain

5 5 WAISSO 26 rue Pagès SURESNES Tel: +33(0) Fax: +33(0) Mail : Site : Pour déposer votre candidature : Stand PLA02 SQL Server sur le terrain

6 6 Administration : Surveillance de la fragmentation, ré-indexation Modèle de recouvrement, sauvegardes, antivirus Architecture : Répartition des données sur les disques Mémoire Code applicatif, index : Amélioration du code Etude des index Dénormalisation

7 7SQL Server sur le terrain Administrer sa base SQL Server comme on le ferait pour tout autre SGBDR Penser à faire intervenir un DBA, au moins à temps partiel Surveiller le système, les compteurs de performances Relever et historiser les compteurs Windows et les traces SQL, pour vérifier leurs évolutions Travailler sur la qualité du code et sur la pertinence des index Il sagit dun levier prépondérant pour lamélioration des performances Ne jamais croire quune opération est indiscutable Toujours tester la solution sur la globalité des applications impactées (réindexation, création dun nouvel index, Service Pack…) Il nexiste pas de solution globale systématiquement efficace, il ny a que des cas particuliers.

8 8 26 rue Pagès SURESNES Tel: +33(0) Fax: +33(0) Mail : Site : Pour déposer votre candidature : Stand PLA02 SQL Server sur le terrain

9 Loptimiseur Son rôle est de déterminer le chemin le moins couteux pour accéder au données Génération de plans dexécutions Les indexes Structure sur disque associée à une table qui accélère l'extraction des lignes Cluster Trie et stocke les lignes de données de la table en fonction de la clé. Non-cluster Peuvent être définis sur une table dotée d'un index cluster ou non Chaque ligne d'un index non-cluster contient la clé et un localisateur de ligne (clé de lindex cluster ou RID si pas dindex cluster) On peut créer des indexes sur des fonctions sur des colonnes CHECKSUM, fonction utilisable pour des « hash indexes ». Les indexes sont propres à chaque optimiseur

10 Les statistiques Utilisées par l'optimiseur pour évaluer la sélectivité des expressions, et donc la taille des résultats intermédiaires et finaux Elles peuvent être: Crées automatiquement ou manuellement Mises à jour automatiquement ou manuellement Mises à jour en synchrone ou en asynchrone Basées sur un échantillonnage de valeurs ou toutes les valeurs Il y en a sur chaque indexes

11 Exemple de Plan Représentation hiérarchique du plan après les différentes phases Analyse de syntaxe Algébrisations Transformations Simplifications SELECT C_CustKey, C_Name, N_Name, Count(*) FROM Nation INNER JOIN Customer ON N_Nationkey = C_NationKey INNER JOIN Orders ON O_CustKey = C_Custkey WHERE O_OrderPriority = 1-URGENT GROUP BY C_CustKey, C_Name, N_Name SELECT C_CustKey, C_Name, N_Name, Count(*) FROM Nation INNER JOIN Customer ON N_Nationkey = C_NationKey INNER JOIN Orders ON O_CustKey = C_Custkey WHERE O_OrderPriority = 1-URGENT GROUP BY C_CustKey, C_Name, N_Name

12 PerfMon Avg. Disc sec/Read Avg. Disk Reads/sec DMVs dm_os_wait_stats dm_io_pendion_io_request dm_io_virtual_file_stats dm_exec_query_stats PerfMon Avg. Disc sec/Read Avg. Disk Reads/sec DMVs dm_os_wait_stats dm_io_pendion_io_request dm_io_virtual_file_stats dm_exec_query_stats Message derreur explicite Page life expectancy bas Plus dI/O que normalement dm_os_memory_clerks dm_os_memory_cache_clock_hands dm_os_memory_cache_counters dm_os_ring_buffers Message derreur explicite Page life expectancy bas Plus dI/O que normalement dm_os_memory_clerks dm_os_memory_cache_clock_hands dm_os_memory_cache_counters dm_os_ring_buffers Vérifier ce qui a changé, y remédier Un changement? Identifier le bottleneck Comparer avec les mesures antérieures Ressources TempDB Requêtes CPU I/O Mémoire Espace DDL & Allocation DDL & Allocation Essayer des solutions Recommencer le processus System Monitor (system et SQL) dm_os_scheduler dm_exec_query_stats dm_exec_query_optimizer_info dm_exec_query_stats SQL Trace (Recompile) Perfmon DMVs: dm_db_file_space_usage dm_tran_active_snapshot_database dm_db_session_space_usage dm_db_task_space_usage PerfMon: SQL Server: Transactions object DMVs: dm_db_file_space_usage dm_tran_active_snapshot_database dm_db_session_space_usage dm_db_task_space_usage PerfMon: SQL Server: Transactions object DMVs: dm_os_waiting_tasks PerfMon: Access Methods object Workfiles Created/sec Worktables Created/sec Mixed page allocations/sec General Statistics object DMVs: dm_os_waiting_tasks PerfMon: Access Methods object Workfiles Created/sec Worktables Created/sec Mixed page allocations/sec General Statistics object DMVs: dm_os_wait_stats dm_os_waiting_tasks dm_tran_locks db_index_operational_stats dm_index_usage_stats dm_exec_* SQL Trace/Profiler Problème de performance? Problème de performance?

13 Dynamic Management Views (DMVs) Plus de 70 Toujours disponible Des rapports prédéfini SQL Profiler (SQL Trace) Capture des plans XML, visualisation Capture des deadlock, visualisation Export des events capturés + devent (OLEDB, Full Text, CLR, Broker, Query Notification, Security Audit,…) + de colonnes capturées Database Tuning Advisor (DTA) Successeur de lIndex Tuning Wizard Plus robuste, moins de restrictions Possibilité de Capacity Planing Perfmon Plus de compteurs Server LevelComponent 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 dm_repl_* Replication dm_broker_* SQL Service Broker dm_fts_* Full Text Search dm_qn_* Query Notifications dm_clr_* Common Language Runtime

14

15 Le point de départ: sys.dm_exec_query_stats, profiler, SSMS rapports, … Trouver si des indexes manquent grâce aux DMVs Maintenant que nous lavons identifiée… Database Tuning Advisor (DTA) Analyse du plan dexécution (Query Plan) Aller plus loin avec SQLTrace

16 Performance des requêtes

17 Indicateurs sur les indexes à utiliser Indicateurs de jointure …Ligne INNER MERGE JOIN Commande… Ils forcent lordre des jointures Indicateurs au niveau de la requête Algorithmes de jointure, Group By et Union. Ordre des jointures Degrés de parallélisme RECOMPILE OPTIMIZE FOR USE PLAN

18 Les indicateurs pour loptimiseur sont très utiles si lon a accès au code des requêtes Si non « Plan Guides » permettent dassocier un indicateur avec le texte dune requête. « Plan Guides » sont stockés dans la base

19 Ajout dun indicateur de requête Requête avec un mauvais planRequête modifiée ayant un bon plan SELECT C_CustKey, C_Name, N_Name, Count(*) FROM Nation INNER JOIN Customer ON N_Nationkey = C_NationKey INNER JOIN Orders ON O_CustKey = C_Custkey WHERE O_OrderPriority = 1-URGENT GROUP BY C_CustKey, C_Name, N_Name SELECT C_CustKey, C_Name, N_Name, Count(*) FROM Nation INNER JOIN Customer ON N_Nationkey = C_NationKey INNER JOIN Orders ON O_CustKey = C_Custkey WHERE O_OrderPriority = 1-URGENT GROUP BY C_CustKey, C_Name, N_Name OPTION (MAXDOP 1) = = NSELECT C_CustKey, C_Name…, /* Texte original = = = = NOPTION (MAXDOP 1)

20 Ajout dun indicateur dindex Requête avec un mauvais plan SELECT C_CustKey, C_Name, N_Name, Count(*) FROM Nation INNER JOIN Customer ON N_Nationkey = C_NationKey INNER JOIN Orders ON O_CustKey = C_Custkey WHERE O_OrderPriority = 1-URGENT GROUP BY C_CustKey, C_Name, N_Name SELECT C_CustKey, C_Name, N_Name, Count(*) FROM Nation INNER JOIN Customer ON N_Nationkey = C_NationKey INNER JOIN Orders WITH (INDEX=PK_O_ORDERKEY) ON O_CustKey = C_Custkey WHERE O_OrderPriority = 1-URGENT GROUP BY C_CustKey, C_Name, N_Name OPTION (MAXDOP 1) SET SHOWPLAN_XML ON SET SHOWPLAN_XML OFF

21 Guide de Plan

22

23 Concurrence daccès

24

25 Problématiques autour de Tempdb

26

27 Sinformer - Un portail dinformations, des événements, une newsletter bimensuelle personnalisée Se former - Des webcasts, des articles techniques, des téléchargements, des forums pour échanger avec vos pairs Bénéficier de services - Des cursus de formations et de certifications, des offres de support technique Visual Studio Abonnement MSDN Premium Abonnement TechNet Plus : Versions déval + 2 incidents support

28 © 2007 Microsoft France Votre potentiel, notre passion TM


Télécharger ppt "Le support (CSS) Waisso - SQL Server sur le terrain Quelques bases Méthodologie Performance des requêtes Concurrence daccès Problématiques autour de Tempdb."

Présentations similaires


Annonces Google