SQL Server 2005 Tuning / Optimisation

Slides:



Advertisements
Présentations similaires
26/ 04/ 2007 Auto-Jointure : SELECT * FROM Nom_relation R1 INNER JOIN Nom_relation R2 ON Condition_de_jointure; Problèmes Si des attributs de même nom.
Advertisements

L’optimiseur ORACLE L’optimiseur ORACLE suit une approche classique: Génération de plusieurs plans d’exécution. Estimation du coût de chaque plan généré.
Optimisation des requêtes
Réalisé par Frédéric TRAN
Langage de manipulation de données Ensemble de commandes permettant : – modifier la base : ajout, modification et suppression – interroger la base ex :
Découverte de SQL Server par la pratique pour les administrateurs expérimentés Module 4 : Stockage des données, Tables dans SQL Server Bertrand Audras.
Découverte de SQL Server par la pratique pour les administrateurs expérimentés Module 5 : Accès aux données Bertrand Audras Microsoft Technology Center.
Découverte de SQL Server par la pratique pour les administrateurs expérimentés Module 6 : Protection des données Bertrand Audras Microsoft Technology Center.
Le sondage LibQUAL à HEC Montréal Une première expérience réussie qui sintègre au processus de planification stratégique de la bibliothèque Le sondage.
Data Management for Large-Scale Scientific Computations in High Performance Distributed Systems A. Choudhary, M. Kandemir, J. NoG. Memik, X. Shen, W. Liao,
Connecter des données métier à Office SharePoint Server 2007 via le Business Data Catalog.
Coopération/Distribution DEA Informatique Nancy. Content 4 Introduction - Overview 4 Coordination of virtual teams : –explicit interaction model –explicit.
Fonctionnalités des SGBD
Optimisation algébrique de requêtes relationnelles
Georges Gardarin 1 LE LANGAGE DE REQUETES SQL l Origines et Evolutions l SQL1 86: la base l SQL1 89: l'intégrité l SQL2 92: la nouvelle norme l SQL3 98:
Les Requêtes S.Q.L « Structured Query Language)
Enesys RS Data Extension
par le DBA de production...
To Tune or not to Tune? To Tune or not to Tune? A Lightweight Physical Design Alerter Costa Jean-Denis Le Yaouanc Aurélie Mécanismes de SGBD 2007.
Luc-Michel Demey Demey® Consulting
#JSS2013 Les journées SQL Server 2013 Un événement organisé par GUSS.

David Baffaleuf– CAPDATA
10 Copyright © Oracle Corporation, Tous droits réservés. Autres concepts relatifs aux déclencheurs.
TM.
Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-
Serveurs Partagés Oracle
Infrastructure, communication & collaboration Accélérer lévolution de votre IT René-Philippe Mantrand CEO Refresh IT Solutions
Langages du Web Sémantique
Les Webcasts Groupe des Utilisateurs SQL Server Avril 2014 – Statistiques Incrémentales Fred Pichaut – Microsoft Senior.
Historique de SystemC Regroupe 4 courants didées: SCENIC Project : Synopsys+UC Irvine Philips System-Level Data Types, VSIA SLD DWG IMEC, Hardware-Software.
L’utilisation des bases de données
Cours N°2 Base de Données & Langage SQL
1 LE LANGAGE DE REQUETES SQL Origines et Evolutions SQL1 86: la base SQL1 89: l'intégrité.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Procédures stockées CPI-SQLServer.
SQL Injection Réalisée par: BEN NASR Houssem GMATI Idriss HADDAD Mohamed Aymen HAKIM Youssef.
Mise en œuvre du langage MDX
1. Les structures de documentation pour la division ST. 2. Les types de document dans la division ST. 3. Linterface informatique. Lundi 8 Mai 2000 ST Quality.
1 CSI 2532 Lab5 Installation de JDBC Février 13, 2012.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 SQL: Contraintes et Triggers Chapitre 5,
Systèmes distribués Le futur des systèmes dinformation est: Networked Diverse Numerous Mobile Ubiquitous Systèmes multiagents Middlewares: CORBA JINI HLA.
Création de bases de données
Textract Magali Paquot. 2 Outil d'indexation (semi-) automatique de texte.
Les concepts et les méthodes des bases de données
2 Analyse et Optimisation des Performances du moteur SQL Serveur 10 février 2011 Frédéric Pichaut EMEA SR ESCALATION ENGINEER Microsoft France.
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
OPTIMISATION DE BASE DE DONNEES ORACLE
Première CTP le 4 décembre Nouvelle CTP depuis le 1 er février RTM milieu de cette année.
Mise à jour des Fichiers Redo Log
Mise en œuvre du langage MDX
CEDCOM architecture haute performance pour des applications “big data” Tanguy Raynaud Projet CEDAR.
Module 8 : Surveillance des performances de SQL Server
Traduction des opérations sous MySQL
Module 12 : Implémentation de procédures stockées.
Optimisation de requêtes
Structure de stockage et relations
Gérer les rôles.
XML fortement adopté en tant que format indépendant d’échange de données. Utilisation de XML pour la modélisation de données structurées et non structurées.
PLAN ● L'instance – Création – Démarrer, Arréter et surveiller – Connexion / Utilisateurs ● Optimisations et interconnexions ● Administration et sauvegardes.
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Module 1 : Vue d'ensemble de Microsoft SQL Server
Cours Access TuanLoc NGUYEN. Contact Nguyen TuanLoc Tél: Web:
Les bases de données Séance 8 Jointures.
Module 3 : Gestion des fichiers de base de données
Gestion des documents internes avec SQL Server 2005 Date de publication : janvier 2006.
NIVEAU LOGIQUE Vues. Fenêtre dynamique sur la base Ses données proviennent d'autres tables ou d'autres vues.
#JSS2013 Les journées SQL Server 2013 Un événement organisé par GUSS.
Les vues, indexes, séquences.  Qu’est ce qu’une vue 1. Une vue est une vision partielle ou particulière des données d'une ou plusieurs tables de la base.
Chapitre 12 Surveillance des ressources et des performances Module S41.
Info Bases de données avancées
Transcription de la présentation:

SQL Server 2005 Tuning / Optimisation 3/30/2017 8:39 AM SQL Server 2005 Tuning / Optimisation  Fred Pichaut (Microsoft France) EMEA Escalation Engineer fredep@microsoft.com Sham UNMAR (Waisso) Directeur Technique sham.unmar@waisso.com © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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

3/30/2017 8:39 AM Le support Microsoft Client Ingénieur Support (spécialiste) Responsable Technique de Compte (TAM) Manager Support Manager Situation Critique Ingénieur d’Escalade (CPR) Développement de correctifs (QFE) Support Groupe de développement 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 d’escalade 1 ingénieur en astreinte tous les jours 24x7 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

WAISSO : Notre expertise autour de SQL Server Nos missions couvrent : L’administration 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 l’expertise Optimisation et Tuning Validation avant Mise En Production Capacity Planning Opérations ponctuelles « pompiers » SQL Server sur le terrain

Pour déposer votre candidature : recrut@waisso.com Quelques références … Stand PLA02 WAISSO 26 rue Pagès 92150 SURESNES Tel:  +33(0)1 71 11 30 10 Fax: +33(0)1 45 06 76 55 Mail : info@waisso.com Site : www.waisso.com Pour déposer votre candidature : recrut@waisso.com SQL Server sur le terrain

Problématiques fréquemment rencontrées 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 SQL Server sur le terrain

Bonnes pratiques 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 s’agit d’un levier prépondérant pour l’amélioration des performances Ne jamais croire qu’une opération est indiscutable Toujours tester la solution sur la globalité des applications impactées (réindexation, création d’un nouvel index, Service Pack…) Il n’existe pas de solution globale systématiquement efficace, il n’y a que des cas particuliers. SQL Server sur le terrain

Merci pour votre attention… Stand PLA02 26 rue Pagès 92150 SURESNES Tel:  +33(0)1 71 11 30 10 Fax: +33(0)1 45 06 76 55 Mail : info@waisso.com Site : www.waisso.com Pour déposer votre candidature : recrut@waisso.com SQL Server sur le terrain

Quelques bases (1/2) L’optimiseur Les indexes Son rôle est de déterminer le chemin le moins couteux pour accéder au données Génération de plans d’exé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 l’index cluster ou RID si pas d’index 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

Quelques bases (2/2) 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

C_CustKey, C_Name, Aggregate[count(*)] Exemple de 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 Représentation hiérarchique du plan après les différentes phases Analyse de syntaxe Algébrisations Transformations Simplifications Group By Filter Join Customer Orders Nation C_CustKey, C_Name, Aggregate[count(*)] O_CustKey = C_Custkey O_OrderPriority = 1-URGENT’ N_Nationkey = C_NationKey

Méthodologie System Monitor (system et SQL) dm_os_scheduler 3/30/2017 8:39 AM Méthodologie System Monitor (system et SQL) dm_os_scheduler dm_exec_query_stats dm_exec_query_optimizer_info SQL Trace (Recompile) Perfmon Problème de performance? CPU DMV’s: 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 Ressources Comparer avec les mesures antérieures Espace PerfMon Avg. Disc sec/Read Avg. Disk Reads/sec DMV’s dm_os_wait_stats dm_io_pendion_io_request dm_io_virtual_file_stats dm_exec_query_stats I/O Un changement? TempDB Identifier le bottleneck DMV’s: dm_os_waiting_tasks PerfMon: Access Methods object Workfiles Created/sec Worktables Created/sec Mixed page allocations/sec General Statistics object DMV’s: dm_os_wait_stats dm_os_waiting_tasks dm_tran_locks db_index_operational_stats dm_index_usage_stats dm_exec_* SQL Trace/Profiler DDL & Allocation Problème de performance? Message d’erreur explicite Page life expectancy bas Plus d’I/O que normalement dm_os_memory_clerks dm_os_memory_cache_clock_hands dm_os_memory_cache_counters dm_os_ring_buffers Requêtes Vérifier ce qui a changé, y remédier Mémoire Recommencer le processus Essayer des solutions © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Quelques outils (1/2) 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 + d’event (OLEDB, Full Text, CLR, Broker, Query Notification, Security Audit,…) + de colonnes capturées Database Tuning Advisor (DTA) Successeur de l’Index Tuning Wizard Plus robuste, moins de restrictions Possibilité de Capacity Planing Perfmon Plus de compteurs Server Level Component 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 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Quelques outils (2/2) SQLdiag utilitaire de collecte d’informations 3/30/2017 8:39 AM Quelques outils (2/2) SQLdiag utilitaire de collecte d’informations Performance logs, event logs, Profiler traces, SQL Server blocking information, SQL Server configuration information Documentation en ligner ou article 162833 SSMS Reports (en SP2 possibilité de rapports personnalisés) ReadTrace Lit les captures SQL Trace (.trc) et produit RML(Replay Markup Language) format Fournit une analyse d’exécution des requêtes Compatible SQL Server 2000 et SQL Server 2005 OSTRESS OSTRESS utilisé par CSS pour des testes et “replay” SQLIOStress\SQLIOSim Outils de stress disque et mémoire SQLDumper, génération d’un dump à la demande http://support.microsoft.com/kb/917825 Il y a une collection de SQL Trace par default © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Performance des requêtes 3/30/2017 8:39 AM Performance des requêtes 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 l’avons identifiée… Database Tuning Advisor (DTA) Analyse du plan d’exécution (Query Plan) Aller plus loin avec SQLTrace © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Performance des requêtes 3/30/2017 8:39 AM 3/30/2017 8:39 AM Démo Performance des requêtes 16 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Comment Influencer l’Optimiseur « HINTS » Indicateurs sur les indexes à utiliser Indicateurs de jointure “…Ligne INNER MERGE JOIN Commande…” Ils forcent l’ordre 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

si l’on a accès au code des requêtes Guides de Plans Les indicateurs pour l’optimiseur sont très utiles si l’on a accès au code des requêtes Si non « Plan Guides » permettent d’associer un indicateur avec le texte d’une requête. « Plan Guides » sont stockés dans la base

Exemple de Guide de Plan Ajout d’un indicateur de requête Requête avec un mauvais plan Requê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) Sp_create_planguide @name = N’MonGuide1’ @stmt = N’SELECT C_CustKey, C_Name…’, /* Texte original */ @type = N’SQL’ @module_or_batch = NULL @params = NULL @hints = N’OPTION (MAXDOP 1)’

Exemple de Guide de Plan Ajout d’un indicateur d’index SET SHOWPLAN_XML ON 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 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) 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 <ShowPlanXLM xmlns=‘http://…' Sp_create_planguide @name = N’MonGuide1’ @stmt = N’SELECT C_CustKey, C_Name…’, /* Texte original */ @type = N’SQL’ @module_or_batch = NULL @params = NULL @hints = N’OPTION (USE PLAN ''<ShowPlanXLM xmlns=…'' SET SHOWPLAN_XML OFF

Démo Guide de Plan 3/30/2017 8:39 AM 3/30/2017 8:39 AM 21 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Concurrence d’accès Déterminer le bottleneck avec… 3/30/2017 8:39 AM Concurrence d’accès Déterminer le bottleneck avec… sys.dm_os_wait_stats sys.dm_os_waiting_tasks sys.dm_io_pending_io_requests sys.dm_io_virtual_file_stats Déterminer qui est bloquant avec… sys.dm_exec_requests sys.dm_exec_sessions Utiliser « blocked process threshold » pour être averti (sp_configure & profiler) Autres scenarios de blocage Buffer I/O latch Non BUF latch Article: http://support.microsoft.com/kb/822101 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Démo Concurrence d’accès 3/30/2017 8:39 AM 3/30/2017 8:39 AM 23 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Problématiques autour de Tempdb 3/30/2017 8:39 AM Problématiques autour de Tempdb Tempdb grossit anormalement Il y a beaucoup de chose dans Tempdb Utiliser les DMV pour déterminer qui et quoi Concurrence d’accès sur Tempdb Allocation de pages (Trace Flag 1118) Les tables systèmes Dois-je reconfigurer? Working with tempdb in SQL Server 2005 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Problématiques autour de Tempdb 3/30/2017 8:39 AM 3/30/2017 8:39 AM Démo Problématiques autour de Tempdb 25 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Resources Le Support Microsoft Livres blancs Webcasts 3/30/2017 8:39 AM Resources L'administration et la gestion SQL Server Livres blancs Compilation par lots, recompilation et mise en cache des plans dans SQL Server 2005 Microsoft SQL Server I/O Basics Chapter 2 (2005, 2000 sp4) Statistiques utilisées par l'optimiseur de requête dans Microsoft SQL Server 2005 Webcasts SQl Days Parties 7: Adminstration, Optimiseur & Partitionnement TechNet Webcast: Performance Diagnosis in SQL Server 2005 Administrer SQL Server 2005 au quotidien - Lancement Technique Lyon Déc 2005 TechNet Webcast: Troubleshooting Performance Problems in Microsoft SQL Server 2005 Et l’ultime recours Le Support Microsoft © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

La référence technique pour les IT Pros : La référence technique technet.microsoft.com 3/30/2017 8:39 AM 3/30/2017 8:39 AM La référence technique pour les développeurs : msdn.microsoft.com Abonnement TechNet Plus : Versions d’éval + 2 incidents support Visual Studio 2005 + Abonnement MSDN Premium S’informer - Un portail d’informations, 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 27 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Votre potentiel, notre passion TM 3/30/2017 8:39 AM 3/30/2017 8:39 AM Votre potentiel, notre passion TM © 2007 Microsoft France 28 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.