2 Analyse et Optimisation des Performances du moteur SQL Serveur 10 février 2011 Frédéric Pichaut EMEA SR ESCALATION ENGINEER Microsoft France.

Slides:



Advertisements
Présentations similaires
Optimisation SQL Server
Advertisements

BASE DE DONNEES CFAO Qu’est-ce que la B.D.
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
Présentation générale de SQL Server Agenda Que comporte SQL Server ? Simplicité dadministration et de mise en oeuvre Évolutivité, fiabilité Support.
Conception de Site Webs dynamiques Cours 6
19 septembre 2006 Tendances Logicielles IBM Rational Data Architect Un outil complet de modélisation et de conception pour SGBD Isabelle Claverie-Berge.
Excel 2007 et les services Excel. Pourquoi Excel ? Outil privilégié danalyse des données issues des bases multidimensionnelles Ergonomie connue des outils.
Fonctionnalités des SGBD
Optimisation algébrique de requêtes relationnelles
Faculté I&C, Claude Petitpierre, André Maurer Bases de données SQL (Structured Query Language)
LE LANGAGE SQL : LDD La création de tables L’ordre CREATE CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne,
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Palais des congrès Paris 7, 8 et 9 février février 2012 Jean-Pierre Riehl MVP SQL Server AZEO SQL Server et les développeurs Hugues Moore Architecte.
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.
Faculté I&C, Claude Petitpierre, André Maurer Bases de données SQL (Structured Query Language)
Tableau croisé dynamique sous Excel (TCD).
Gérard Gasganias Ingénieur Avant-Vente Microsoft France
#JSS2013 Les journées SQL Server 2013 Un événement organisé par GUSS.
Les Webcasts Groupe des Utilisateurs SQL Server Avril 2014 – Statistiques Incrémentales Fred Pichaut – Microsoft Senior.
Chap 4 Les bases de données et le modèle relationnel
Les requêtes Les requêtes permettent dinterroger une base de données suivant 3 opérateurs : La projection Affiche le contenu dun champ complet En langage.
Indexation 1. Concepts de base 2. Arbre B 3. Indexes secondaires.
L’utilisation des bases de données
Les fichiers indexés (Les B-arbres)
Mise en œuvre du langage MDX
1 Evaluation des Operations Relationnelles : Algorithmes Additionnels Chapitre 14, ,
1 Survol du Stockage et de lIndexage Chapitre 8. 2 Objectifs Stockage persistant Organisation des fichiers Fichiers de données Fichiers dindexes Operations.
Les concepts et les méthodes des bases de données
Management of Information Technology - e-business
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Survol du Stockage et de lIndexage Chapitre 8.
OPTIMISATION DE BASE DE DONNEES ORACLE
Introduction.
Algèbre Relationnelle : Implémentation
Bases de données   J-L Hainaut III. Méthodologie des bases de données [long] 1. Méthodologie des BD5. Conception physique 2. Le modèle Entité-association6.
Objectifs A la fin de ce chapitre, vous pourrez : présenter l'utilisation d'opérations de chargement de données par chemin direct décrire l'utilisation.
Bases de données fédéréEs hétérogènes
Optimisation de requêtes
1/13 Sécurité dans Pastis Fabio Picconi LIP6 13 février 2004 ACI MD Grid Data Services (GDS)
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II PRO-1024.
1 PHP 5 Notions fondamentales (cours #5) Formation continue – Cégep de Sainte-Foy.
22 Azure: comment migrer une application 08/02/2010 Sébastien Pertus, BeWise Thomas Conté, Microsoft.
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.
Le Langage SQL Introduction. 2 Historique du Langage SQL E. F. CODD : premiers articles dans les années 70 IBM crée le langage SEQUEL (Structured English.
Création et Gestion de Tables
Module 1 : Vue d'ensemble de Microsoft SQL Server
1 Survol du Stockage et de l’Indexage Chapitre 8.
Les vues Une vue: c’est une relation virtuelle. Définie par:
COMPARAISON DES SYSTEMES DE GESTION DE FICHIERS LINUX / WINDOWS NT
Intégration des Tableaux Multidimensionnels en Pig pour
06/04/06 LES BASES DE DONNEES INTRODUCTION CogniTIC – Bruxelles Formation - Cepegra.
Comprendre le SGBDR Microsoft Access – partie 2
Les bases de données Séance 8 Jointures.
PPE Session 2010 Comment optimiser un réseau wifi ?
Visualisation des flots optiques en 3D
Séance /10/2004 SGBD - Approches & Principes.
Gestion des documents internes avec SQL Server 2005 Date de publication : janvier 2006.
Cours n°2 Implémentation et exploitation
#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.
Modélisation et utilisation Aurélien Marion1 Aurélien Marion
Installation du PGI – CEGID
Les bases de données Séance 4 Construction du Modèle Physique (la BDD)
PetaSky: Expérimentations avec HadoopDB et Hive 1 Amin Mesmoudi.
SQLSaturday Paris 2015 SSAS et le moteur relationnel Faire son choix.
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
1 Les bases de données Séance 6 L ’extraction de données Le SELECT.
Les Bases de données Définition Architecture d’un SGBD
Manipulation D’Une Base De Données
Transcription de la présentation:

2 Analyse et Optimisation des Performances du moteur SQL Serveur 10 février 2011 Frédéric Pichaut EMEA SR ESCALATION ENGINEER Microsoft France

3 Agenda Quelques Bases Les indexes Structures Utilisation Gestion Les outils Avec le produit Exterieurs (SQLDiag, PSSDiag, SQL Nexus)

4 Quelques Bases Loptimiseur Son rôle est de déterminer le chemin daccès au données Il est basé sur la notion de coût (Cost-Based Optimizer) Génération de plans dexécutions Les indexes sont propres à chaque optimiseur 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 indexe cluster ou non Chaque ligne contient la clé cluster ou un localisateur de ligne (RID) Possibilité dindexes sur des colonnes calculées par des fonctions CHECKSUM, fonction utilisable pour des « hash indexes ». Possibilité dindexes sur des colonnes incluses Possibilité dindexes filtrés: CREATE NONCLUSTERED INDEX FIProdAcc ON Produit (Nom, Prix) WHERE CatID >= 27 AND CatID <= 36; DENALI – Indexes de type Column Store Index (CSI)

5 Column Store Index (CSI) Accélération Typiquement pour des requêtes de type Data Warehouse Objectifs: de 100x à 1000x plus rapide Fonctionnement en parallèle Limitations Pas dUpdates directe Rebuild Index Partition Switching Pas de Large Data Types Les types autres que String plus grand que 8 bytes Numériques avec une précision au-delà 18 digits Datetimeoffset au-delà 8 bytes Unique Identifier BLOBs XML Verti-Pac Compression Apollo

6 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 Sur chaque indexes, 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 Elles peuvent être filtrées: CREATE STATISTICS FSPoids ON Produit (Poids) WHERE CatID IN (1,2,3);

7 Démo Statistiques Auto-update Filtrée Column Store Index

8 Reconstruction dindexe Reconstruire un indexe le supprime et crée un nouveau (online ou offline). ALTER INDEX … REBUILD; CREATE INDEX … DROP_EXISTING; Désactiver Nc Indexes pour économiser lespace FOREIGN KEY référençant lindexes seront désactivées ALTER INDEX REBUILDCREATE INDEX WITH DROP_EXISTING Ajour ou suppression de colonnes changement de lordre ou du tri NonOui Options de lindexe a positionnerOui Plus dun indexe à reconstruire en une transactionOuiNon un indexe partitionné peut être repartitionnéNonOui un indexe peut être déplacé sur un autre fichierNonOui Demande de lespace temporaire supplémentaireOui Reconstruire un indexe cluster reconstruit les indexes non cluster Non (sauf si ALL) Single index partition à reconstruireOuiNon

9 Réorganisation dindexe ALTER INDEX … REORGANIZE Toujours « Online » Réorganise les feuilles de lindexe en ordonnant les pages (de gauche a droite) Les pages sont réorganisées en utilisant les pages existantes (pas dallocation) Le réorganisation est faite par fichier Compacte les pages Utilise un minimum de ressource Les Blobs sont compactés par défaut quand un indexe Cluster est réorganisé

10 Quelles actions prendre Utiliser la fonction : sys.dm_db_index_physical_stats() Regarder la valeur: avg_fragmentation_in_percent SELECT a.index_id, name, avg_fragmentation_in_percent FROM sys.dm_db_index_physical_stats(DB_ID(), OBJECT_ID(N'Production.Product'), NULL, NULL, NULL) AS a JOIN sys.indexes AS b ON a.object_id = b.object_id AND a.index_id = b.index_id; Ne pas sattacher aux petits indexes (mixed extents). avg_fragmentation_in_percentAction > 5% et < = 30%ALTER INDEX REORGANIZE > 30%ALTER INDEX REBUILD WITH (ONLINE = ON)

11 Méthodologie Lanalyse de performance est un perpétuel recommencement Quand on pense en avoir fini, un changement survient CaptureAnalyseReglages Charge du système

12 Quelques outils 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 Dynamic Management Views (DMVs) Plus de 70 Toujours disponible Des rapports prédéfini Performance Dashboard (web 2008) Performance Data Colector (2008) 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 Combiné avec Perfmon Database Tuning Advisor (DTA) Successeur de lIndex Tuning Wizard Plus robuste, moins de restrictions Possibilité de Capacity Planing Perfmon Plus de compteurs

13 Outils à venir: XEProfiler SQL Trace Va disparaitre Events Ported – Engine Only Intégré à Management Studio (SSMS) Create, Alter, Stop, Start Sessions Possibilité de voir les données sous forme de grille Fonctions avancées Searching Aggregation (Sum, Min, Max, …) Sorting Grouping Custom Columns (Ex: connect_options, sql_text = text) Save and Apply Your Favorite Display View Export dans Excel

14 SQLDiag Collecte basique Utile pour comparer les performances avant et après des changements (logiciels, code, indexes, hardware,… Livré avec SQL Server /X pour uniquement un snapshot: evt/err logs, configurations Sinon, collecte snapshot + PerfMon + Profiler Peut être utilisé comme un service ou unitairement Controlé par fichiers XML

15 PSSDiag Sappuie sur SQLDiag + Diagnostiques particuliers Exemples: DMV, clone db, msdb backup Contrôlé par les mêmes fichiers XML que SQLDiag, les Diagnostiques particuliers sont ajoutés comme: <CustomTask enabled="true" groupname="MsInfo" taskname="Get MSINFO32" type="Utility" point="Startup" wait="OnlyOnShutdown" cmd="start /B /WAIT MSInfo32.exe /computer %server% /report "%output_path%server%_MSINFO32.TXT" /categories

16 Démo SQL Diag & PSSDiag

17 SQLDiag Demo Open dos-prompt with run as administrator Run with /X for snapshot Review SD_Detailed.XML Example location: C:\Program Files\Microsoft SQL Server\100\Tools\Binn

18 PSSDiag Best Practices I/O Une capture à la fois. Eviter GUI, SQLDiag est non graphique (SQLTrace). Utiliser un ficher de sortie local avec un bon cache décriture, Pas de share sur le réseau. KB307786KB Ne pas utiliser un path UNC, même sil pointe en local. Utiliser le disque disponible le plus rapide pas utilisé par SQL (ou autre). Eviter RAID-5. Tester sur un environnement autre que production ou pas pendant heures de production.

19 Best Practices – Capture Eviter les évènements trop fréquents comme : Object:Opened, Lock:Acquired/Released, etc... Par défaut Batch-level, pas Statement-level. Show Plan Statistics consomme beaucoup de CPU, généralement capturer Showplan Statistics Profile et/ou Showplan XML Statistics Profile. Showplan All est utile dans le cas de requête ne se finissant pas. Les filtres réduisent la taille des fichiers et les I/O mais augmentent la consommation CPU. Filtrer sur des colonnes de type Integer (dbid, duration, etc) plutôt que sur des textes (database name, textdata, etc) et uniquement si les filtres enlèvent >10% des évènements.

20 Best Practices – Capture 2 Evènements qui impactent la taille de la trace: SQL:StmtCompleted and SP:StmtCompleted Degree of Parallelism Lock:Timeout Show Plan Statistics SQL:BatchStarting RPC:Starting

21 SQL Nexus Download depuis Codeplex.comCodeplex.com Importer les traces SQLDiag + PerfStats Analyser vos donnée Construire ses propre rapport

22 Démo SQL Diag suite et analyse

23 PerfMon – Principaux compteurs Logical disk Avg disk sec/read < 10-20ms, sec/write < 3-5ms Disk reads/sec, Disk writes/sec Memory - Available MBytes MSSQL Buffer Manager - Page Life Expectancy MSSQL Databases - Active Transactions, Backup/Restore Throughput/sec, Repl. Pending Xacts, Repl. Trans. Rate, Transactions/sec MSSQL Memory Manager - Total Server Memory, Target Server Memory MSSQL Plan Cache - Cache Hit Ratio (all instances) MSSQL Wait Statistics - (all) Process - % Processor Time (all instances) Processor - % Processor Time (all instances)

24 Resources Reorganizing and Rebuilding Indexes Compilation par lots, recompilation et mise en cache des plans dans SQL Server 2005 Statistiques utilisées par l'optimiseur de requête dans Microsoft SQL Server 2005 Rechercher des problèmes de délai d'E/S dans le sous-système d'E/S disque Optimisation des performances de la base de données tempdb Et lultime recours

25 MSDN et TechNet : lessentiel des ressources techniques à portée de clic Portail administration et infrastructure pour informaticiens Portail de ressources technique pour développeurs