Plans d'exécution

Améliorer les performances des requêtes dans SQL Server

Dean Smith

Founder, Atamai Analytics

Phase d'optimisation

Phase d'optimisation

Améliorer les performances 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 les performances 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 les performances des requêtes dans SQL Server

Informations 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 le coût relatif des :
    • conditions de filtrage
    • tris
    • agrégations
Améliorer les performances des requêtes dans SQL Server

Plan d'exécution estimé dans SSMS

 

Élément de menu de la barre d'outils SSMS : plan d'exécution estimé

Améliorer les performances des requêtes dans SQL Server

Plan d'exécution estimé dans SSMS

 

Élément de menu de la barre d'outils SSMS : plan d'exécution estimé avec info-bulle

Améliorer les performances des requêtes dans SQL Server

Afficher les plans d'exécution dans SSMS

Plan d'exécution dans SSMS

Améliorer les performances des requêtes dans SQL Server

Statistiques des opérateurs

Statistiques de l'opérateur du plan d'exécution

Améliorer les performances des requêtes dans SQL Server

Lire les plans d'exécution

Opérateurs de plan d'exécution

Améliorer les performances des requêtes dans SQL Server

Exemple d'index

SELECT * 
FROM Customers
WHERE CustomerID = 'PARIS';

Opérateur « table scan »

SELECT * 
FROM CustomersCI
WHERE CustomerID = 'PARIS';

Opérateur « clustered index seek »

Améliorer les performances 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 les performances 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 avec IN et EXISTS

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

Plan d'exécution avec IN et EXISTS

Améliorer les performances des requêtes dans SQL Server

Passons à la pratique !

Améliorer les performances des requêtes dans SQL Server

Preparing Video For Download...