Plans d'exécution

Améliorer la performance des requêtes dans SQL Server

Dean Smith

Founder, Atamai Analytics

Phase d'optimisation

Phase d'optimisation

Améliorer la performance des requêtes dans SQL Server

Phase d'optimisation

Phase d'optimisation avec description

Paramètres de coût évalués :

  • Utilisation du processeur
  • Utilisation de la mémoire
  • Lectures de pages de données
Améliorer la performance des requêtes dans SQL Server

Phase d'optimisation

Phase d'optimisation et moteur d'exécution

Paramètres de coût évalués :

  • Utilisation du processeur
  • Utilisation de la mémoire
  • Lectures de pages de données
Améliorer la performance des requêtes dans SQL Server

Infos tirées des plans d'exécution

Les plans d'exécution indiquent notamment :

  • Si des index ont été utilisés
  • Les types de jointures utilisés
  • L'emplacement et les coûts relatifs des :
    • conditions de filtrage
    • tris
    • agrégations
Améliorer la performance des requêtes dans SQL Server

Plan d'exécution estimé dans SSMS

 

Élément de menu du plan d'exécution estimé dans SSMS

Améliorer la performance des requêtes dans SQL Server

Plan d'exécution estimé dans SSMS

 

Élément de menu du plan d'exécution estimé dans SSMS avec info-bulle

Améliorer la performance des requêtes dans SQL Server

Afficher les plans d'exécution dans SSMS

Plan d'exécution dans SSMS

Améliorer la performance des requêtes dans SQL Server

Statistiques d'opérateur

Statistiques d'un opérateur de plan d'exécution

Améliorer la performance des requêtes dans SQL Server

Lire les plans d'exécution

Opérateurs de plan d'exécution

Améliorer la performance des requêtes dans SQL Server

Exemple d'index

SELECT * 
FROM Customers
WHERE CustomerID = 'PARIS';

Opérateur de balayage de table

SELECT * 
FROM CustomersCI
WHERE CustomerID = 'PARIS';

Opérateur de recherche dans un index clusterisé

Améliorer la performance des requêtes dans SQL Server

Exemple d'opérateur de tri

SELECT FruitName, FruitType
FROM Fruits1

UNION

SELECT FruitName, FruitType
FROM Fruits2;

Plan d'exécution avec UNION

SELECT FruitName, FruitType
FROM Fruits1

UNION ALL

SELECT FruitName, FruitType
FROM Fruits2;

Plan d'exécution avec UNION ALL

Améliorer la performance des requêtes dans SQL Server

Le même plan d'exécution ?

SELECT * 
FROM Customers
WHERE CustomerID IN 
    (SELECT CustomerID 
     FROM Orders);

Plan d'exécution de IN et EXISTS

SELECT * 
FROM Customers c
WHERE EXISTS
    (SELECT 1 
     FROM Orders o 
     WHERE c.CustomerID = o.CustomerID);

Plan d'exécution de IN et EXISTS

Améliorer la performance des requêtes dans SQL Server

Passons à la pratique !

Améliorer la performance des requêtes dans SQL Server

Preparing Video For Download...