SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
Analyse et optimisation des
performances du moteur
SQL Serveur
10 février 2011
Frédéric Pichaut
EMEA SR ESCALATION ENGINEER
Microsoft France
Agenda
  Quelques Bases
  Gestion de la mémoire avec SQL 2012
  ColumnStore Index
  Les statistiques
  Gestion des index
  Méthodologie
  Les outils
    Avec le produit (DTA, Xevent, XE Profiler, SQLDiag)

    Extérieurs (SQLDiag, PSSDiag, SQL Nexus)
Quelques Bases
  L’optimiseur
     Son rôle est de déterminer le chemin d’accès au données
     Il est basé sur la notion de coût (Cost-Based Optimizer)
     Génération de plans d’exé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é.
               Un Cluster index peut être défini non-unique mais en interne il le sera toujours.
          Non-cluster
               Peuvent être définis sur une table dotée d'un indexe cluster ou non
               Chaque ligne contient la clé cluster index ou un localisateur de ligne (RID) s’il n’y a pas de CI
     Possibilité d’indexes sur des colonnes calculées par des fonctions
           CHECKSUM, fonction utilisable pour des « hash indexes »
            ALTER TABLE Product ADD cs_Pname AS CHECKSUM(Name);
            CREATE INDEX Pname_index ON Product (cs_Pname)
     Possibilité d’indexes avec des colonnes incluses
            CREATE NONCLUSTERED INDEX IncIndex ON Product (ID) INCLUDE (Prix)
     Possibilité d’indexes filtrés:
            CREATE NONCLUSTERED INDEX FiltIndex ON Product (Name, Price)
            WHERE CatID >= 27 AND CatID <= 36;
     SQL12 – Indexes de type “Column Store Index (CSI)”
Gestion de la mémoire avec SQL
2012
  SQL Server 2012 introduit un nouveau « page allocator » qui contrôle
  les demandes de « single page » et « multi page »
     Le nouveau « any size page allocator » gère les demandes de
       8KB et plus.
  Les demandes de Multi-Page et CLR sont maintenant inclus dans
  l’espace mémoire contrôlé par « max server memory (MB) »
  max server memory
     Détermine la mémoire physique max (committed memory)

     Le min passe de 16 MB à 64 MB (x86) ou 128 MB (X64).

  L’espace « memory_to_reserve » (-g) n’inclus plus les demandes de
  « multi-page ». En dehors de ca, tout reste identique pour cette
  espace.
  L’option « awe enabled » n’est plus supportée.
  L’option « Lock Pages In Memory » est supporté pour les éditions
  Enterprise, Standard et Business Intelligence (pas pour les autres
  éditions).
     Plus besoin de Hotfix, Trace Flag ou « AWE »
ColumnStore Index (CSI)
  Accélération
      Nouvel algorithme de l’optimiseur BATCH
            Produit et interprète les batch, chacun contenant ~1000 valeurs
             compressées
      Requêtes Data Warehouse ou jointure en étoile
      Utilise la compression Vertipaq
      Moins d’IO
  Limitations
      Pas d’Updates directe dans la table
          Rebuild Index/Partition Switching
      Pas de Large Data Types
          Decimal > 18 digits
          Uniqueidentifier
          Binary et BLOBs
Columnstore Index
  Traditionnellement les
  données sont stockées       Data Pages
  dans des pages lignes par
  lignes
  On utilise le terme « row
  store » pour décrire une             …
  Heap ou un B-Tree ayant
  plusieurs ligne par page
Columnstore Index
                                    Select region, sum(sales), …
  Un Segment contiens les
  valeurs d’une colonne pour un
  ensemble de lignes              Segment
  Les segments pour un même
  groupe de lignes constitues                 C3       C5

  un « row group »
  Les segments sont
  compressés
  Chaque segment est stocké
  dans un BLOB
  Le segment est l’unité de                                        Row
  transfert entre le disque et la                                  group
  mémoire.
  Estimation de la mémoire
  nécessaire pour créer un CSI
  :
  DOP * (nb col * 4.2M + 68.1M)
  + (nb string col * 53.7M)
Exemple de performance
    Base du TPC-DS de 1 TB
    1.44 milliard de lignes dans la table de faits catalog_sales

SELECT w_city, w_state, d_year, SUM(cs_sales_price) AS cs_sales_price
FROM warehouse, catalog_sales, date_dim
WHERE w_warehouse_sk = cs_warehouse_sk
    and cs_sold_date_sk = d_date_sk and w_state in ('SD','OH')
    and d_year in (2001,2002,2003)
GROUP BY w_city, w_state, d_year
ORDER BY d_year, w_state, w_city;



                              Total CPU time       Elapsed time

        No columnstore        502 sec              501 sec
        Columnstore           31.0 sec             1.10 sec
        Speedup               16X                  455X
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/Mises à jour automatiquement ou manuellement
    Mises à jour en synchrone ou en asynchrone
    Basées sur un échantillonnage ou toutes les valeurs
  Elles peuvent être filtrées:
       CREATE STATISTICS FSPoids ON Produit (Poids) WHERE CatID IN
       (1,2,3);
  Elles peuvent être sur des colonnes calculées si le résultat
  est déterministe.
  sys.dm_db_stats_properties en 2008 R2 SP2 (puis 2012)

   SELECT
   sp.stats_id, name, filter_definition, last_updated, rows, rows_sampled, steps,
    unfiltered_rows, modification_counter FROM sys.stats stat CROSS APPLY
   sys.dm_db_stats_properties(stat.object_id, stat.stats_id) sp
   WHERE stat.object_id = object_id('FactResellerSalesPartCopy_part')
Démo
 Statistiques
   Table compressée
   Index filtré
 Column Store Index
   Update
Reconstruction d’indexe
  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 l’espace
  SQL 2012: REBUILD ONLINE pour les LOB (sauf
  TEXT/IMAGE/FILESTREAM)
  FOREIGN KEY référençant l’indexes seront désactivées
                                                        ALTER INDEX REBUILD   CREATE INDEX WITH
                                                                              DROP_EXISTING
   Ajour ou suppression de colonnes changement de       Non                   Oui
   l’ordre ou du tri
   Options de l’indexe a positionner                    Oui                   Oui
   Plus d’un indexe à reconstruire en une transaction   Oui                   Non

   un indexe partitionné peut être repartitionné        Non                   Oui
   un indexe peut être déplacé sur un autre fichier     Non                   Oui

   Demande de l’espace temporaire supplémentaire        Oui                   Oui

   Reconstruire un indexe cluster reconstruit les       Non (sauf si ALL)     Non (sauf si ALL)
   indexes non cluster
   Single index partition à reconstruire                Oui                   Non
Réorganisation d’indexe

  ALTER INDEX … REORGANIZE
    Toujours « Online »
    Réorganise les feuilles de l’indexe en ordonnant les
     pages (de gauche a droite)
    Les pages sont réorganisées en utilisant les pages
     existantes (pas d’allocation)
    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é
Quand?
  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;
   avg_fragmentation_in_percent                      Action

         > 5% et < = 30%          ALTER INDEX REORGANIZE

              > 30%               ALTER INDEX REBUILD WITH (ONLINE = ON)


  Ne pas perdre du temps sur petits indexes (mixed
  extents).
Méthodologie
  L’analyse de performance est un perpétuel
  recommencement
  Quand on pense en avoir fini, un changement survient



                          Capture




              Charge du
                                     Analyse
               système




                          Reglages
Comment aborder une requête
longue
Les outils Standard
 Dynamic Management Views
 (DMVs)                                        Server Level           Component Level
    Plus de 70                            dm_exec_*                 dm_repl_*
    Toujours disponible                       Execution of user         Replication
    Des rapports prédéfini                    code and associated   dm_broker_*
    Performance Dashboard (web 2008)          connections
                                                                        SQL Service
    Performance Data Colector (2008)      dm_os_*                       Broker
                                              Memory, locking &     dm_fts_*
                                              scheduling
 SQL Profiler (SQL Trace)                 dm_tran_*
                                                                        Full Text Search
    Grand nombre d’event capturable           Transactions &
                                                                    dm_qn_*
    Combiné avec Perfmon                      isolation                 Query
    Va disparaitre                                                      Notifications
                                          dm_io_*
                                                                    dm_clr_*
                                              I/O on network and
 Xevent                                       disks                     Common
                                                                        Language
    Utilise la techno ETW                 dm_db_*                       Runtime
    5% de CPU pour 20000 event/sec            Databases and
    Intégré dans le moteur                    database objects


 Database Tuning Advisor (DTA)
    Successeur de l’Index Tuning Wizard
    Plus robuste, moins de restrictions
    Possibilité de Capacity Planing
 Perfmon
    Toujours plus de compteurs
SQL 2012 DTA
  Tuning des 1000 top Events du Plan Cache
  Option –n du TDA.EXE pour changer le nombre d’Event
Xevent
  Introduit avec SQL 2008
  Événements (Event): points d’intérêt dans le flot
  d’exécution du code.
  Cibles (Target): Ou stoquer l’evenement capturé (Event
  file, Ring buffer,…)
  Actions: Collecte d’information, Stack dump, …
  Types: Définit les types de données utilisés
  Prédicats: mécanisme de filtrage, permet de diminuer
  davantage l’empreinte de XE sur les performances
  Maps: table de correspondance clés / valeurs (genre
  d’EventSubClass plus poussé).
XE Profiler
  SQL Trace
    Va disparaitre
    Events Portés – Inclus dans le moteur
  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)
  External Action Event: XEDEVPKG.DLL
                         Alter                        Alter

         Create                          Start
                    Extended Event               Extended Event
                     Session existe               Session active
             Drop                        Stop
                                  Drop
Problème de cardinalités
inaccurate_cardinality_estimate
(debug channel)
Démarrer la sessions XE et regarder
« live data »
Sur une requête en cours, nous
n’avons pas le plan d’execution
actuel mais en quelques secondes
CE
Utiliser le plan_handle et
dm_exec_query_plan, pour trouver
le plan et le node_id
PSSDiag
  S’appuie 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:
        <CustomGroup name="msinfo" enabled="true" />
        <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
  Pssdiag and Sqldiag Manager
    Disponible sur http://diagmanager.codeplex.com/
         Pour SQL 7.0 jusqu’à SQL 2008 R2
Démo
 XEvent
   Interface

   Generate dump on error

   Fire external Action

   inaccurate_cardinality_estimate detection
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. KB307786
  Ne pas utiliser un path UNC, même s’il 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.
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.
Best Practices – Capture 2
  Evènements qui impactent la taille de la trace:
     SQL:StmtCompleted et SP:StmtCompleted
     Degree of Parallelism
     Lock:Timeout
     Show Plan Statistics
     SQL:BatchStarting
     RPC:Starting
RML & SQL Nexus
  RML Utilities for SQL Server http://support.microsoft.com/kb/944837
      ReadTrace
         Paramétrage des requêtes

         Agrégation des exécutions

         Analyse de performance (Top n)

      Reporter
      OStress
      Agent de contrôle OStress relecture (ORCA)

  SQL Nexus Download depuis http://sqlnexus.codeplex.com/
    Importer les traces SQLDiag + PerfStats

    Analyser vos donnée

    Utilise SQL Server Reporting Services client-side report viewer
Démo
 PSSDiag
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)
Resources


  Troubleshooting Performance Problems in SQL Server 2008
  Reorganizing and Rebuilding Indexes
  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 l’ultime recours
Pour aller plus loin…

  Venez nous voir sur le stand SQL Server
    Retrouvez les experts Microsoft et MVP

    Assistez à des présentations des offres de nos
     partenaires

  Inscrivez-vous au « Virtual Launch Event » du 8 mars :
  http://aka.ms/vlefrance

  Visitez notre nouveau site : http://www.microsoft.fr/sql

  Evaluez dès aujourd’hui SQL Server 2012
    En téléchargeant la RC0 : http://aka.ms/sql2012

    En suivant nos « Virtual Labs » : http://aka.ms/sqllabs
palais des
congrès
Paris




7, 8 et 9
février 2012

Contenu connexe

Tendances

Dw & etl concepts
Dw & etl conceptsDw & etl concepts
Dw & etl conceptsjeshocarme
 
Sorting Algorithms
Sorting AlgorithmsSorting Algorithms
Sorting AlgorithmsPranay Neema
 
Introduction au Deep Learning
Introduction au Deep Learning Introduction au Deep Learning
Introduction au Deep Learning Niji
 
Data Structure -List Stack Queue
Data Structure -List Stack QueueData Structure -List Stack Queue
Data Structure -List Stack Queuesurya pandian
 
Intelligence-Artificielle-cours.pdf
Intelligence-Artificielle-cours.pdfIntelligence-Artificielle-cours.pdf
Intelligence-Artificielle-cours.pdfTCHAMINIPRINCESSELUS
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceLilia Sfaxi
 
Présentation des bases de données NoSql
Présentation des bases de données NoSqlPrésentation des bases de données NoSql
Présentation des bases de données NoSqlSidi LEKHALIFA
 
Stack - Data Structure - Notes
Stack - Data Structure - NotesStack - Data Structure - Notes
Stack - Data Structure - NotesOmprakash Chauhan
 
Evaluation of postfix expression
Evaluation of postfix expressionEvaluation of postfix expression
Evaluation of postfix expressionAkhil Ahuja
 
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er coursBases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er coursHatim CHAHDI
 
Introduction to Cassandra
Introduction to CassandraIntroduction to Cassandra
Introduction to CassandraGokhan Atil
 
Information Flow Mechanism in Data warehouse
Information Flow Mechanism in Data warehouseInformation Flow Mechanism in Data warehouse
Information Flow Mechanism in Data warehouseGunjanShree1
 
STACKS IN DATASTRUCTURE
STACKS IN DATASTRUCTURESTACKS IN DATASTRUCTURE
STACKS IN DATASTRUCTUREArchie Jamwal
 
Yzm 2116 Bölüm 8 - İkili Arama Ağacı - Binary Search Tree
Yzm 2116   Bölüm 8 - İkili Arama Ağacı - Binary Search TreeYzm 2116   Bölüm 8 - İkili Arama Ağacı - Binary Search Tree
Yzm 2116 Bölüm 8 - İkili Arama Ağacı - Binary Search TreeDeniz KILINÇ
 

Tendances (20)

Dw & etl concepts
Dw & etl conceptsDw & etl concepts
Dw & etl concepts
 
Sorting Algorithms
Sorting AlgorithmsSorting Algorithms
Sorting Algorithms
 
What is ETL?
What is ETL?What is ETL?
What is ETL?
 
Circular Queue data structure
Circular Queue data structureCircular Queue data structure
Circular Queue data structure
 
Introduction au Deep Learning
Introduction au Deep Learning Introduction au Deep Learning
Introduction au Deep Learning
 
Data Structure -List Stack Queue
Data Structure -List Stack QueueData Structure -List Stack Queue
Data Structure -List Stack Queue
 
Priority queues
Priority queuesPriority queues
Priority queues
 
Intelligence-Artificielle-cours.pdf
Intelligence-Artificielle-cours.pdfIntelligence-Artificielle-cours.pdf
Intelligence-Artificielle-cours.pdf
 
Infix to postfix conversion
Infix to postfix conversionInfix to postfix conversion
Infix to postfix conversion
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
 
Data warehouse
Data warehouseData warehouse
Data warehouse
 
Présentation des bases de données NoSql
Présentation des bases de données NoSqlPrésentation des bases de données NoSql
Présentation des bases de données NoSql
 
Stack - Data Structure - Notes
Stack - Data Structure - NotesStack - Data Structure - Notes
Stack - Data Structure - Notes
 
Evaluation of postfix expression
Evaluation of postfix expressionEvaluation of postfix expression
Evaluation of postfix expression
 
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er coursBases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
 
Introduction to Cassandra
Introduction to CassandraIntroduction to Cassandra
Introduction to Cassandra
 
Information Flow Mechanism in Data warehouse
Information Flow Mechanism in Data warehouseInformation Flow Mechanism in Data warehouse
Information Flow Mechanism in Data warehouse
 
STACKS IN DATASTRUCTURE
STACKS IN DATASTRUCTURESTACKS IN DATASTRUCTURE
STACKS IN DATASTRUCTURE
 
Searching Algorithm
Searching AlgorithmSearching Algorithm
Searching Algorithm
 
Yzm 2116 Bölüm 8 - İkili Arama Ağacı - Binary Search Tree
Yzm 2116   Bölüm 8 - İkili Arama Ağacı - Binary Search TreeYzm 2116   Bölüm 8 - İkili Arama Ağacı - Binary Search Tree
Yzm 2116 Bölüm 8 - İkili Arama Ağacı - Binary Search Tree
 

En vedette

Introduction to SQL Server 2008 Management Data Warehouse (MDW)
Introduction to SQL Server 2008 Management Data Warehouse (MDW)Introduction to SQL Server 2008 Management Data Warehouse (MDW)
Introduction to SQL Server 2008 Management Data Warehouse (MDW)Dean Willson
 
Microsoft SQL Server - Reduce Your Cost and Improve your Agility Presentation
Microsoft SQL Server - Reduce Your Cost and Improve your Agility PresentationMicrosoft SQL Server - Reduce Your Cost and Improve your Agility Presentation
Microsoft SQL Server - Reduce Your Cost and Improve your Agility PresentationMicrosoft Private Cloud
 
Sql server consolidation and virtualization
Sql server consolidation and virtualizationSql server consolidation and virtualization
Sql server consolidation and virtualizationIvan Donev
 
Microsoft business-intelligence
Microsoft business-intelligenceMicrosoft business-intelligence
Microsoft business-intelligenceBENJID Mohamed
 
Les plateformes de streaming musique en France
Les plateformes de streaming musique en FranceLes plateformes de streaming musique en France
Les plateformes de streaming musique en Francechristophe Neny
 
Le Streaming : Comment ça marche ?
Le Streaming : Comment ça marche ?Le Streaming : Comment ça marche ?
Le Streaming : Comment ça marche ?Mountaga CISSE
 
Multiple instances consolidation practices
Multiple instances consolidation practicesMultiple instances consolidation practices
Multiple instances consolidation practicesAlexDepo
 
Fondamentaux de la gestion de projet (cours 2)
Fondamentaux de la gestion de projet (cours 2)Fondamentaux de la gestion de projet (cours 2)
Fondamentaux de la gestion de projet (cours 2)Françoise Gouzi
 
Supervision de réseau informatique - Nagios
Supervision de réseau informatique - NagiosSupervision de réseau informatique - Nagios
Supervision de réseau informatique - NagiosAziz Rgd
 
Rapport nagios miniprojet
Rapport nagios miniprojetRapport nagios miniprojet
Rapport nagios miniprojetAyoub Rouzi
 
Introduction Gestion Projet web
Introduction Gestion Projet webIntroduction Gestion Projet web
Introduction Gestion Projet webguest6d3f53
 
Installer et configurer NAGIOS sous linux
Installer et configurer NAGIOS sous linuxInstaller et configurer NAGIOS sous linux
Installer et configurer NAGIOS sous linuxZakariyaa AIT ELMOUDEN
 
[SINS] Présentation de Nagios
[SINS] Présentation de Nagios[SINS] Présentation de Nagios
[SINS] Présentation de Nagiosjeyg
 
Step by Step Installation of Microsoft SQL Server 2012
Step by Step Installation of Microsoft SQL Server 2012 Step by Step Installation of Microsoft SQL Server 2012
Step by Step Installation of Microsoft SQL Server 2012 Sameh AboulDahab
 
Les fondamentaux de la gestion de projet
Les fondamentaux de la gestion de projetLes fondamentaux de la gestion de projet
Les fondamentaux de la gestion de projetCOMPETENSIS
 
Cours - Supervision SysRes et Présentation de Nagios
Cours - Supervision SysRes et Présentation de NagiosCours - Supervision SysRes et Présentation de Nagios
Cours - Supervision SysRes et Présentation de NagiosErwan 'Labynocle' Ben Souiden
 

En vedette (20)

Introduction to SQL Server 2008 Management Data Warehouse (MDW)
Introduction to SQL Server 2008 Management Data Warehouse (MDW)Introduction to SQL Server 2008 Management Data Warehouse (MDW)
Introduction to SQL Server 2008 Management Data Warehouse (MDW)
 
Microsoft SQL Server - Reduce Your Cost and Improve your Agility Presentation
Microsoft SQL Server - Reduce Your Cost and Improve your Agility PresentationMicrosoft SQL Server - Reduce Your Cost and Improve your Agility Presentation
Microsoft SQL Server - Reduce Your Cost and Improve your Agility Presentation
 
Sql server consolidation and virtualization
Sql server consolidation and virtualizationSql server consolidation and virtualization
Sql server consolidation and virtualization
 
Sql Server 2008 Server Consolidation
Sql Server 2008 Server ConsolidationSql Server 2008 Server Consolidation
Sql Server 2008 Server Consolidation
 
Microsoft business-intelligence
Microsoft business-intelligenceMicrosoft business-intelligence
Microsoft business-intelligence
 
Les plateformes de streaming musique en France
Les plateformes de streaming musique en FranceLes plateformes de streaming musique en France
Les plateformes de streaming musique en France
 
Le Streaming : Comment ça marche ?
Le Streaming : Comment ça marche ?Le Streaming : Comment ça marche ?
Le Streaming : Comment ça marche ?
 
Supervision
SupervisionSupervision
Supervision
 
Multiple instances consolidation practices
Multiple instances consolidation practicesMultiple instances consolidation practices
Multiple instances consolidation practices
 
Fondamentaux de la gestion de projet (cours 2)
Fondamentaux de la gestion de projet (cours 2)Fondamentaux de la gestion de projet (cours 2)
Fondamentaux de la gestion de projet (cours 2)
 
Supervision de réseau informatique - Nagios
Supervision de réseau informatique - NagiosSupervision de réseau informatique - Nagios
Supervision de réseau informatique - Nagios
 
Rapport nagios miniprojet
Rapport nagios miniprojetRapport nagios miniprojet
Rapport nagios miniprojet
 
Introduction Gestion Projet web
Introduction Gestion Projet webIntroduction Gestion Projet web
Introduction Gestion Projet web
 
Installer et configurer NAGIOS sous linux
Installer et configurer NAGIOS sous linuxInstaller et configurer NAGIOS sous linux
Installer et configurer NAGIOS sous linux
 
Les différentes phases d’un projet - La phase d’initialisation
Les différentes phases d’un projet - La phase d’initialisationLes différentes phases d’un projet - La phase d’initialisation
Les différentes phases d’un projet - La phase d’initialisation
 
[SINS] Présentation de Nagios
[SINS] Présentation de Nagios[SINS] Présentation de Nagios
[SINS] Présentation de Nagios
 
Step by Step Installation of Microsoft SQL Server 2012
Step by Step Installation of Microsoft SQL Server 2012 Step by Step Installation of Microsoft SQL Server 2012
Step by Step Installation of Microsoft SQL Server 2012
 
Les fondamentaux de la gestion de projet
Les fondamentaux de la gestion de projetLes fondamentaux de la gestion de projet
Les fondamentaux de la gestion de projet
 
Introduction gestion de projet
Introduction gestion de projetIntroduction gestion de projet
Introduction gestion de projet
 
Cours - Supervision SysRes et Présentation de Nagios
Cours - Supervision SysRes et Présentation de NagiosCours - Supervision SysRes et Présentation de Nagios
Cours - Supervision SysRes et Présentation de Nagios
 

Similaire à Analyse et optimisation des performances du moteur SQL Serveur

Sql azure performance et montee en charge (1)
Sql azure   performance et montee en charge (1)Sql azure   performance et montee en charge (1)
Sql azure performance et montee en charge (1)Aymeric Weinbach
 
System Center 2012 | SCCM : L'inventaire de A à Z avec System Center Configur...
System Center 2012 | SCCM : L'inventaire de A à Z avec System Center Configur...System Center 2012 | SCCM : L'inventaire de A à Z avec System Center Configur...
System Center 2012 | SCCM : L'inventaire de A à Z avec System Center Configur...Microsoft Technet France
 
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
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introOlivier Mallassi
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaMicrosoft
 
Mappingobjetrelationnel[1]
Mappingobjetrelationnel[1]Mappingobjetrelationnel[1]
Mappingobjetrelationnel[1]linasafaa
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logiciellecyrilgandon
 
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
 
SQL Server et les développeurs
SQL Server et les développeurs SQL Server et les développeurs
SQL Server et les développeurs Microsoft
 
SSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLSSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLHervé Leclerc
 
GAB 2015 - Nouveautes sur le stockage de donnees dans Azure
GAB 2015  - Nouveautes sur le stockage de donnees dans AzureGAB 2015  - Nouveautes sur le stockage de donnees dans Azure
GAB 2015 - Nouveautes sur le stockage de donnees dans AzureJean-Luc Boucho
 
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) univalence
 
Performance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPrestaShop
 
No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010JUG Lausanne
 
myXtraction, une solution innovante
myXtraction, une solution innovantemyXtraction, une solution innovante
myXtraction, une solution innovanteLASSA Rafik
 
OSA02 - Pas de transactionnel haute performance sans un couple machine logici...
OSA02 - Pas de transactionnel haute performance sans un couple machine logici...OSA02 - Pas de transactionnel haute performance sans un couple machine logici...
OSA02 - Pas de transactionnel haute performance sans un couple machine logici...Nicolas Desachy
 
Panorama des offres NoSQL disponibles dans Azure
Panorama des offres NoSQL disponibles dans AzurePanorama des offres NoSQL disponibles dans Azure
Panorama des offres NoSQL disponibles dans AzureMicrosoft Décideurs IT
 

Similaire à Analyse et optimisation des performances du moteur SQL Serveur (20)

Sql azure performance et montee en charge (1)
Sql azure   performance et montee en charge (1)Sql azure   performance et montee en charge (1)
Sql azure performance et montee en charge (1)
 
System Center 2012 | SCCM : L'inventaire de A à Z avec System Center Configur...
System Center 2012 | SCCM : L'inventaire de A à Z avec System Center Configur...System Center 2012 | SCCM : L'inventaire de A à Z avec System Center Configur...
System Center 2012 | SCCM : L'inventaire de A à Z avec System Center Configur...
 
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
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
 
Drools et les moteurs de règles
Drools et les moteurs de règlesDrools et les moteurs de règles
Drools et les moteurs de règles
 
Mappingobjetrelationnel[1]
Mappingobjetrelationnel[1]Mappingobjetrelationnel[1]
Mappingobjetrelationnel[1]
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logicielle
 
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
 
SQL Server et les développeurs
SQL Server et les développeurs SQL Server et les développeurs
SQL Server et les développeurs
 
SSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLSSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQL
 
GAB 2015 - Nouveautes sur le stockage de donnees dans Azure
GAB 2015  - Nouveautes sur le stockage de donnees dans AzureGAB 2015  - Nouveautes sur le stockage de donnees dans Azure
GAB 2015 - Nouveautes sur le stockage de donnees dans Azure
 
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
 
Performance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShop
 
No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010
 
myXtraction, une solution innovante
myXtraction, une solution innovantemyXtraction, une solution innovante
myXtraction, une solution innovante
 
OSA02 - Pas de transactionnel haute performance sans un couple machine logici...
OSA02 - Pas de transactionnel haute performance sans un couple machine logici...OSA02 - Pas de transactionnel haute performance sans un couple machine logici...
OSA02 - Pas de transactionnel haute performance sans un couple machine logici...
 
Liquibase en action
Liquibase en actionLiquibase en action
Liquibase en action
 
MariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQLMariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQL
 
Panorama des offres NoSQL disponibles dans Azure
Panorama des offres NoSQL disponibles dans AzurePanorama des offres NoSQL disponibles dans Azure
Panorama des offres NoSQL disponibles dans Azure
 

Plus de Microsoft Technet France

Automatisez, visualisez et améliorez vos processus d’entreprise avec Nintex
Automatisez, visualisez et améliorez vos processus d’entreprise avec Nintex Automatisez, visualisez et améliorez vos processus d’entreprise avec Nintex
Automatisez, visualisez et améliorez vos processus d’entreprise avec Nintex Microsoft Technet France
 
Comment réussir votre déploiement de Windows 10
Comment réussir votre déploiement de Windows 10Comment réussir votre déploiement de Windows 10
Comment réussir votre déploiement de Windows 10Microsoft Technet France
 
Fusion, Acquisition - Optimisez la migration et la continuité des outils col...
 Fusion, Acquisition - Optimisez la migration et la continuité des outils col... Fusion, Acquisition - Optimisez la migration et la continuité des outils col...
Fusion, Acquisition - Optimisez la migration et la continuité des outils col...Microsoft Technet France
 
Wavestone déploie son portail Powell 365 en 5 semaines
Wavestone déploie son portail Powell 365 en 5 semainesWavestone déploie son portail Powell 365 en 5 semaines
Wavestone déploie son portail Powell 365 en 5 semainesMicrosoft Technet France
 
Retour d’expérience sur le monitoring et la sécurisation des identités Azure
Retour d’expérience sur le monitoring et la sécurisation des identités AzureRetour d’expérience sur le monitoring et la sécurisation des identités Azure
Retour d’expérience sur le monitoring et la sécurisation des identités AzureMicrosoft Technet France
 
Scénarios de mobilité couverts par Enterprise Mobility + Security
Scénarios de mobilité couverts par Enterprise Mobility + SecurityScénarios de mobilité couverts par Enterprise Mobility + Security
Scénarios de mobilité couverts par Enterprise Mobility + SecurityMicrosoft Technet France
 
SharePoint Framework : le développement SharePoint nouvelle génération
SharePoint Framework : le développement SharePoint nouvelle générationSharePoint Framework : le développement SharePoint nouvelle génération
SharePoint Framework : le développement SharePoint nouvelle générationMicrosoft Technet France
 
Stockage Cloud : il y en aura pour tout le monde
Stockage Cloud : il y en aura pour tout le mondeStockage Cloud : il y en aura pour tout le monde
Stockage Cloud : il y en aura pour tout le mondeMicrosoft Technet France
 
Bien appréhender le concept de Windows As a Service
Bien appréhender le concept de Windows As a ServiceBien appréhender le concept de Windows As a Service
Bien appréhender le concept de Windows As a ServiceMicrosoft Technet France
 
Protéger vos données avec le chiffrement dans Azure et Office 365
Protéger vos données avec le chiffrement dans Azure et Office 365Protéger vos données avec le chiffrement dans Azure et Office 365
Protéger vos données avec le chiffrement dans Azure et Office 365Microsoft Technet France
 
Protéger votre patrimoine informationnel dans un monde hybride avec Azure Inf...
Protéger votre patrimoine informationnel dans un monde hybride avec Azure Inf...Protéger votre patrimoine informationnel dans un monde hybride avec Azure Inf...
Protéger votre patrimoine informationnel dans un monde hybride avec Azure Inf...Microsoft Technet France
 
Comprendre la stratégie identité de Microsoft
Comprendre la stratégie identité de MicrosoftComprendre la stratégie identité de Microsoft
Comprendre la stratégie identité de MicrosoftMicrosoft Technet France
 
Vous avez dit « authentification sans mot de passe » : une illustration avec ...
Vous avez dit « authentification sans mot de passe » : une illustration avec ...Vous avez dit « authentification sans mot de passe » : une illustration avec ...
Vous avez dit « authentification sans mot de passe » : une illustration avec ...Microsoft Technet France
 
Déploiement hybride, la téléphonie dans le cloud
Déploiement hybride, la téléphonie dans le cloudDéploiement hybride, la téléphonie dans le cloud
Déploiement hybride, la téléphonie dans le cloudMicrosoft Technet France
 
Supervisez la qualité des appels Skype for Business Online à l'aide de Call Q...
Supervisez la qualité des appels Skype for Business Online à l'aide de Call Q...Supervisez la qualité des appels Skype for Business Online à l'aide de Call Q...
Supervisez la qualité des appels Skype for Business Online à l'aide de Call Q...Microsoft Technet France
 
SharePoint 2016 : architecture, déploiement et topologies hybrides
SharePoint 2016 : architecture, déploiement et topologies hybridesSharePoint 2016 : architecture, déploiement et topologies hybrides
SharePoint 2016 : architecture, déploiement et topologies hybridesMicrosoft Technet France
 
Gestion de Windows 10 et des applications dans l'entreprise moderne
Gestion de Windows 10 et des applications dans l'entreprise moderneGestion de Windows 10 et des applications dans l'entreprise moderne
Gestion de Windows 10 et des applications dans l'entreprise moderneMicrosoft Technet France
 
Office 365 dans votre Système d'Informations
Office 365 dans votre Système d'InformationsOffice 365 dans votre Système d'Informations
Office 365 dans votre Système d'InformationsMicrosoft Technet France
 

Plus de Microsoft Technet France (20)

Automatisez, visualisez et améliorez vos processus d’entreprise avec Nintex
Automatisez, visualisez et améliorez vos processus d’entreprise avec Nintex Automatisez, visualisez et améliorez vos processus d’entreprise avec Nintex
Automatisez, visualisez et améliorez vos processus d’entreprise avec Nintex
 
Comment réussir votre déploiement de Windows 10
Comment réussir votre déploiement de Windows 10Comment réussir votre déploiement de Windows 10
Comment réussir votre déploiement de Windows 10
 
OMS log search au quotidien
OMS log search au quotidienOMS log search au quotidien
OMS log search au quotidien
 
Fusion, Acquisition - Optimisez la migration et la continuité des outils col...
 Fusion, Acquisition - Optimisez la migration et la continuité des outils col... Fusion, Acquisition - Optimisez la migration et la continuité des outils col...
Fusion, Acquisition - Optimisez la migration et la continuité des outils col...
 
Wavestone déploie son portail Powell 365 en 5 semaines
Wavestone déploie son portail Powell 365 en 5 semainesWavestone déploie son portail Powell 365 en 5 semaines
Wavestone déploie son portail Powell 365 en 5 semaines
 
Retour d’expérience sur le monitoring et la sécurisation des identités Azure
Retour d’expérience sur le monitoring et la sécurisation des identités AzureRetour d’expérience sur le monitoring et la sécurisation des identités Azure
Retour d’expérience sur le monitoring et la sécurisation des identités Azure
 
Scénarios de mobilité couverts par Enterprise Mobility + Security
Scénarios de mobilité couverts par Enterprise Mobility + SecurityScénarios de mobilité couverts par Enterprise Mobility + Security
Scénarios de mobilité couverts par Enterprise Mobility + Security
 
SharePoint Framework : le développement SharePoint nouvelle génération
SharePoint Framework : le développement SharePoint nouvelle générationSharePoint Framework : le développement SharePoint nouvelle génération
SharePoint Framework : le développement SharePoint nouvelle génération
 
Stockage Cloud : il y en aura pour tout le monde
Stockage Cloud : il y en aura pour tout le mondeStockage Cloud : il y en aura pour tout le monde
Stockage Cloud : il y en aura pour tout le monde
 
Bien appréhender le concept de Windows As a Service
Bien appréhender le concept de Windows As a ServiceBien appréhender le concept de Windows As a Service
Bien appréhender le concept de Windows As a Service
 
Protéger vos données avec le chiffrement dans Azure et Office 365
Protéger vos données avec le chiffrement dans Azure et Office 365Protéger vos données avec le chiffrement dans Azure et Office 365
Protéger vos données avec le chiffrement dans Azure et Office 365
 
Protéger votre patrimoine informationnel dans un monde hybride avec Azure Inf...
Protéger votre patrimoine informationnel dans un monde hybride avec Azure Inf...Protéger votre patrimoine informationnel dans un monde hybride avec Azure Inf...
Protéger votre patrimoine informationnel dans un monde hybride avec Azure Inf...
 
Comprendre la stratégie identité de Microsoft
Comprendre la stratégie identité de MicrosoftComprendre la stratégie identité de Microsoft
Comprendre la stratégie identité de Microsoft
 
Vous avez dit « authentification sans mot de passe » : une illustration avec ...
Vous avez dit « authentification sans mot de passe » : une illustration avec ...Vous avez dit « authentification sans mot de passe » : une illustration avec ...
Vous avez dit « authentification sans mot de passe » : une illustration avec ...
 
Sécurité des données
Sécurité des donnéesSécurité des données
Sécurité des données
 
Déploiement hybride, la téléphonie dans le cloud
Déploiement hybride, la téléphonie dans le cloudDéploiement hybride, la téléphonie dans le cloud
Déploiement hybride, la téléphonie dans le cloud
 
Supervisez la qualité des appels Skype for Business Online à l'aide de Call Q...
Supervisez la qualité des appels Skype for Business Online à l'aide de Call Q...Supervisez la qualité des appels Skype for Business Online à l'aide de Call Q...
Supervisez la qualité des appels Skype for Business Online à l'aide de Call Q...
 
SharePoint 2016 : architecture, déploiement et topologies hybrides
SharePoint 2016 : architecture, déploiement et topologies hybridesSharePoint 2016 : architecture, déploiement et topologies hybrides
SharePoint 2016 : architecture, déploiement et topologies hybrides
 
Gestion de Windows 10 et des applications dans l'entreprise moderne
Gestion de Windows 10 et des applications dans l'entreprise moderneGestion de Windows 10 et des applications dans l'entreprise moderne
Gestion de Windows 10 et des applications dans l'entreprise moderne
 
Office 365 dans votre Système d'Informations
Office 365 dans votre Système d'InformationsOffice 365 dans votre Système d'Informations
Office 365 dans votre Système d'Informations
 

Analyse et optimisation des performances du moteur SQL Serveur

  • 1. Analyse et optimisation des performances du moteur SQL Serveur 10 février 2011 Frédéric Pichaut EMEA SR ESCALATION ENGINEER Microsoft France
  • 2. Agenda Quelques Bases Gestion de la mémoire avec SQL 2012 ColumnStore Index Les statistiques Gestion des index Méthodologie Les outils  Avec le produit (DTA, Xevent, XE Profiler, SQLDiag)  Extérieurs (SQLDiag, PSSDiag, SQL Nexus)
  • 3. Quelques Bases L’optimiseur  Son rôle est de déterminer le chemin d’accès au données  Il est basé sur la notion de coût (Cost-Based Optimizer)  Génération de plans d’exé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é.  Un Cluster index peut être défini non-unique mais en interne il le sera toujours.  Non-cluster  Peuvent être définis sur une table dotée d'un indexe cluster ou non  Chaque ligne contient la clé cluster index ou un localisateur de ligne (RID) s’il n’y a pas de CI  Possibilité d’indexes sur des colonnes calculées par des fonctions CHECKSUM, fonction utilisable pour des « hash indexes » ALTER TABLE Product ADD cs_Pname AS CHECKSUM(Name); CREATE INDEX Pname_index ON Product (cs_Pname)  Possibilité d’indexes avec des colonnes incluses CREATE NONCLUSTERED INDEX IncIndex ON Product (ID) INCLUDE (Prix)  Possibilité d’indexes filtrés: CREATE NONCLUSTERED INDEX FiltIndex ON Product (Name, Price) WHERE CatID >= 27 AND CatID <= 36;  SQL12 – Indexes de type “Column Store Index (CSI)”
  • 4. Gestion de la mémoire avec SQL 2012 SQL Server 2012 introduit un nouveau « page allocator » qui contrôle les demandes de « single page » et « multi page »  Le nouveau « any size page allocator » gère les demandes de 8KB et plus. Les demandes de Multi-Page et CLR sont maintenant inclus dans l’espace mémoire contrôlé par « max server memory (MB) » max server memory  Détermine la mémoire physique max (committed memory)  Le min passe de 16 MB à 64 MB (x86) ou 128 MB (X64). L’espace « memory_to_reserve » (-g) n’inclus plus les demandes de « multi-page ». En dehors de ca, tout reste identique pour cette espace. L’option « awe enabled » n’est plus supportée. L’option « Lock Pages In Memory » est supporté pour les éditions Enterprise, Standard et Business Intelligence (pas pour les autres éditions).  Plus besoin de Hotfix, Trace Flag ou « AWE »
  • 5. ColumnStore Index (CSI) Accélération  Nouvel algorithme de l’optimiseur BATCH  Produit et interprète les batch, chacun contenant ~1000 valeurs compressées  Requêtes Data Warehouse ou jointure en étoile  Utilise la compression Vertipaq  Moins d’IO Limitations  Pas d’Updates directe dans la table  Rebuild Index/Partition Switching  Pas de Large Data Types  Decimal > 18 digits  Uniqueidentifier  Binary et BLOBs
  • 6. Columnstore Index Traditionnellement les données sont stockées Data Pages dans des pages lignes par lignes On utilise le terme « row store » pour décrire une … Heap ou un B-Tree ayant plusieurs ligne par page
  • 7. Columnstore Index Select region, sum(sales), … Un Segment contiens les valeurs d’une colonne pour un ensemble de lignes Segment Les segments pour un même groupe de lignes constitues C3 C5 un « row group » Les segments sont compressés Chaque segment est stocké dans un BLOB Le segment est l’unité de Row transfert entre le disque et la group mémoire. Estimation de la mémoire nécessaire pour créer un CSI : DOP * (nb col * 4.2M + 68.1M) + (nb string col * 53.7M)
  • 8. Exemple de performance Base du TPC-DS de 1 TB 1.44 milliard de lignes dans la table de faits catalog_sales SELECT w_city, w_state, d_year, SUM(cs_sales_price) AS cs_sales_price FROM warehouse, catalog_sales, date_dim WHERE w_warehouse_sk = cs_warehouse_sk and cs_sold_date_sk = d_date_sk and w_state in ('SD','OH') and d_year in (2001,2002,2003) GROUP BY w_city, w_state, d_year ORDER BY d_year, w_state, w_city; Total CPU time Elapsed time No columnstore 502 sec 501 sec Columnstore 31.0 sec 1.10 sec Speedup 16X 455X
  • 9. 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/Mises à jour automatiquement ou manuellement  Mises à jour en synchrone ou en asynchrone  Basées sur un échantillonnage ou toutes les valeurs Elles peuvent être filtrées: CREATE STATISTICS FSPoids ON Produit (Poids) WHERE CatID IN (1,2,3); Elles peuvent être sur des colonnes calculées si le résultat est déterministe. sys.dm_db_stats_properties en 2008 R2 SP2 (puis 2012) SELECT sp.stats_id, name, filter_definition, last_updated, rows, rows_sampled, steps, unfiltered_rows, modification_counter FROM sys.stats stat CROSS APPLY sys.dm_db_stats_properties(stat.object_id, stat.stats_id) sp WHERE stat.object_id = object_id('FactResellerSalesPartCopy_part')
  • 10. Démo Statistiques  Table compressée  Index filtré Column Store Index  Update
  • 11. Reconstruction d’indexe 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 l’espace SQL 2012: REBUILD ONLINE pour les LOB (sauf TEXT/IMAGE/FILESTREAM) FOREIGN KEY référençant l’indexes seront désactivées ALTER INDEX REBUILD CREATE INDEX WITH DROP_EXISTING Ajour ou suppression de colonnes changement de Non Oui l’ordre ou du tri Options de l’indexe a positionner Oui Oui Plus d’un indexe à reconstruire en une transaction Oui Non un indexe partitionné peut être repartitionné Non Oui un indexe peut être déplacé sur un autre fichier Non Oui Demande de l’espace temporaire supplémentaire Oui Oui Reconstruire un indexe cluster reconstruit les Non (sauf si ALL) Non (sauf si ALL) indexes non cluster Single index partition à reconstruire Oui Non
  • 12. Réorganisation d’indexe ALTER INDEX … REORGANIZE  Toujours « Online »  Réorganise les feuilles de l’indexe en ordonnant les pages (de gauche a droite)  Les pages sont réorganisées en utilisant les pages existantes (pas d’allocation)  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é
  • 13. Quand? 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; avg_fragmentation_in_percent Action > 5% et < = 30% ALTER INDEX REORGANIZE > 30% ALTER INDEX REBUILD WITH (ONLINE = ON) Ne pas perdre du temps sur petits indexes (mixed extents).
  • 14. Méthodologie L’analyse de performance est un perpétuel recommencement Quand on pense en avoir fini, un changement survient Capture Charge du Analyse système Reglages
  • 15. Comment aborder une requête longue
  • 16. Les outils Standard Dynamic Management Views (DMVs) Server Level Component Level Plus de 70 dm_exec_* dm_repl_* Toujours disponible Execution of user Replication Des rapports prédéfini code and associated dm_broker_* Performance Dashboard (web 2008) connections SQL Service Performance Data Colector (2008) dm_os_* Broker Memory, locking & dm_fts_* scheduling SQL Profiler (SQL Trace) dm_tran_* Full Text Search Grand nombre d’event capturable Transactions & dm_qn_* Combiné avec Perfmon isolation Query Va disparaitre Notifications dm_io_* dm_clr_* I/O on network and Xevent disks Common Language Utilise la techno ETW dm_db_* Runtime 5% de CPU pour 20000 event/sec Databases and Intégré dans le moteur database objects Database Tuning Advisor (DTA) Successeur de l’Index Tuning Wizard Plus robuste, moins de restrictions Possibilité de Capacity Planing Perfmon Toujours plus de compteurs
  • 17. SQL 2012 DTA Tuning des 1000 top Events du Plan Cache Option –n du TDA.EXE pour changer le nombre d’Event
  • 18. Xevent Introduit avec SQL 2008 Événements (Event): points d’intérêt dans le flot d’exécution du code. Cibles (Target): Ou stoquer l’evenement capturé (Event file, Ring buffer,…) Actions: Collecte d’information, Stack dump, … Types: Définit les types de données utilisés Prédicats: mécanisme de filtrage, permet de diminuer davantage l’empreinte de XE sur les performances Maps: table de correspondance clés / valeurs (genre d’EventSubClass plus poussé).
  • 19. XE Profiler SQL Trace  Va disparaitre  Events Portés – Inclus dans le moteur 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) External Action Event: XEDEVPKG.DLL Alter Alter Create Start Extended Event Extended Event Session existe Session active Drop Stop Drop
  • 20. Problème de cardinalités inaccurate_cardinality_estimate (debug channel) Démarrer la sessions XE et regarder « live data » Sur une requête en cours, nous n’avons pas le plan d’execution actuel mais en quelques secondes CE Utiliser le plan_handle et dm_exec_query_plan, pour trouver le plan et le node_id
  • 21. PSSDiag S’appuie 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: <CustomGroup name="msinfo" enabled="true" /> <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 Pssdiag and Sqldiag Manager  Disponible sur http://diagmanager.codeplex.com/  Pour SQL 7.0 jusqu’à SQL 2008 R2
  • 22.
  • 23. Démo XEvent  Interface  Generate dump on error  Fire external Action  inaccurate_cardinality_estimate detection
  • 24. 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. KB307786 Ne pas utiliser un path UNC, même s’il 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.
  • 25. 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.
  • 26. Best Practices – Capture 2 Evènements qui impactent la taille de la trace: SQL:StmtCompleted et SP:StmtCompleted Degree of Parallelism Lock:Timeout Show Plan Statistics SQL:BatchStarting RPC:Starting
  • 27. RML & SQL Nexus RML Utilities for SQL Server http://support.microsoft.com/kb/944837  ReadTrace  Paramétrage des requêtes  Agrégation des exécutions  Analyse de performance (Top n)  Reporter  OStress  Agent de contrôle OStress relecture (ORCA) SQL Nexus Download depuis http://sqlnexus.codeplex.com/  Importer les traces SQLDiag + PerfStats  Analyser vos donnée  Utilise SQL Server Reporting Services client-side report viewer
  • 29. 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)
  • 30. Resources Troubleshooting Performance Problems in SQL Server 2008 Reorganizing and Rebuilding Indexes 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 l’ultime recours
  • 31. Pour aller plus loin… Venez nous voir sur le stand SQL Server  Retrouvez les experts Microsoft et MVP  Assistez à des présentations des offres de nos partenaires Inscrivez-vous au « Virtual Launch Event » du 8 mars : http://aka.ms/vlefrance Visitez notre nouveau site : http://www.microsoft.fr/sql Evaluez dès aujourd’hui SQL Server 2012  En téléchargeant la RC0 : http://aka.ms/sql2012  En suivant nos « Virtual Labs » : http://aka.ms/sqllabs
  • 32. palais des congrès Paris 7, 8 et 9 février 2012

Notes de l'éditeur

  1. The following table provides the requirements to enable &quot;locked pages&quot; in different versions, editions and platforms of SQL Server.Enterprise EditionData Center EditionStandard EditionBusiness Intelligence EditionOther editionsSQL 2012 [32-bit &amp; 64-bit] • Assign LPIM user right to SQL Startup account • Assign LPIM user right to SQL Startup account No support for &quot;locked pages&quot; SQL 2005/2008/2008R2 [32-bit] • Assign LPIM user right to SQL Startup account• Configure &apos;awe enabled&apos; option to 1 • Assign LPIM user right to SQL Startup account• Configure &apos;awe enabled&apos; option to 1 No support for &quot;locked pages&quot; SQL 2005/2008/2008R2 [64-bit] • Assign LPIM user right to SQL Startup account • Assign LPIM user right to SQL Startup account• Apply SQL Hotfix KBA 970070• Enable trace flag 845 No support for &quot;locked pages&quot;
  2. Below is a high-level summary of all changes related to memory management in SQL Server 2012.· The new memory manager supports allocations of all sizes. There is no concept of single-page allocator and multi-page allocator. For any of these sizes, the memory manager supports the three available memory models. The three memory models available in the SQL Server are conventional, lock pages, large pages. Large page is available only in 64 bit.· The new memory manager can be tuned for specific workloads [examples: SQL Server relational engine, SQL Server reporting service, etc]. These tuning options are available for the component developers and not exposed to the external customers or DBA&apos;s.· The new memory manager supports locality [CPU and NUMA] for allocations of all sizes. The memory node is created for all NUMA nodes even if there are no CPU&apos;s used there. That memory node is set offline.· The management of virtual address space is dynamic now - especially in 32-bit instances of SQL Server.· The configuration option &quot;max server memory&quot; now controls all the memory allocations done by the SQL Server memory manager. This is different from what the previous versions of SQL Server accounted for. As a result, resource governor is now able to control all page allocations.· AWE feature to map more physical memory in 32-bit virtual address space is removed from SQL Server memory manager· The SQL Server Buffer is a pure client of the SQL Server memory manager.
  3. Statisticques: Server sql11scenario1.sql auto updatescenario2.sql statistics filtré
  4. When a nonclustered index is disabled, the index data rows are deleted, but the index definition remains in metadata. The index is enabled when it is rebuilt. When the nonclustered index is not disabled, the rebuild operation requires enough temporary disk space to store both the old and new index. However, by disabling and rebuilding a nonclustered index in separate transactions, the disk space made available by disabling the index can be reused by the subsequent rebuild or any other operation. No additional space is required except for temporary disk space for sorting, which is typically 20 percent of the index size. If the nonclustered index is on the primary key, any active, referencing FOREIGN KEY constraints will automatically be disabled. These constraints must be manually enabled after the index is rebuilt.
  5. 5 minDemo:Start sessionAdd watch live data sessionPopulate demo tableExecute artificial long running queryExplain that we will have CE issue due to parameter sniffingWhile the query is still running, we see the XESelect from sys.dm_exec_query_plan using the plan handle to see the plan and find node_id
  6. MontrerC:\\Program Files (x86)\\Microsoft\\Pssdiag\\DiagConfig.exe
  7. MontrerC:\\Program Files (x86)\\Microsoft\\Pssdiag\\DiagConfig.exe