Méthodes alternatives 2

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

Dean Smith

Founder, Atamai Analytics

INNER JOIN

SELECT c.CustomerID
      ,c.CompanyName
      ,o.OrderID
      ,o.OrderDate
      ,o.ShippedDate
      ,o.Freight
FROM Customers c
INNER JOIN Orders o
    ON c.CustomerID = o.CustomerID
CustomerID CompanyName OrderID ...
VINET Vins et alcools Chevalier 10248 ...
HANAR Hanari Carnes 10250 ...
VICTE Victuailles en stock 10251 ...
SUPRD Suprêmes délices 10252 ...
... ... ... ...
Améliorer la performance des requêtes dans SQL Server

LEFT OUTER JOIN

Inclusif LEFT OUTER JOIN

Diagramme de Venn : LEFT OUTER JOIN inclusif

Exclusif LEFT OUTER JOIN

Diagramme de Venn : LEFT OUTER JOIN exclusif

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

LEFT OUTER JOIN exclusif

SELECT c.CustomerID
      ,c.CompanyName
      ,o.OrderID
      ,o.OrderDate
      ,o.ShippedDate
      ,o.Freight
FROM Customers c
LEFT OUTER JOIN Orders o
    ON c.CustomerID = o.CustomerID
WHERE o.CustomerID IS NULL
CustomerID CompanyName OrderID ...
FISSA FISSA Fabrica Inter. Salchichas S.A. NULL ...
PARIS Paris spécialités NULL ...
Améliorer la performance des requêtes dans SQL Server

Récap : INTERSECT et EXCEPT

INTERSECT : vérifie la présence

EXCEPT : vérifie l'absence

Avantages

  • Excellent pour sonder les données
  • Supprime les doublons dans les résultats retournés

Inconvénient

  • Le nombre et l'ordre des colonnes du SELECT doivent être identiques entre les requêtes
Améliorer la performance des requêtes dans SQL Server

Récap : EXISTS et NOT EXISTS

EXISTS : vérifie la présence

NOT EXISTS : vérifie l'absence

Avantages

  • La sous‑requête s'arrête dès qu'elle évalue à TRUE
  • Les résultats peuvent contenir n'importe quelle colonne de la requête externe, dans n'importe quel ordre

Inconvénient

  • Les résultats ne peuvent contenir que des colonnes de la requête externe
Améliorer la performance des requêtes dans SQL Server

Récap : IN et NOT IN

IN : vérifie la présence

NOT IN : vérifie l'absence

Avantage

  • Les résultats peuvent contenir n'importe quelle colonne de la requête externe, dans n'importe quel ordre

Inconvénients

  • Les résultats ne peuvent contenir que des colonnes de la requête externe
  • Aucun résultat si NOT IN gère des null dans la sous‑requête
Améliorer la performance des requêtes dans SQL Server

Récap : INNER JOIN et L.O.J exclusif

INNER JOIN : vérifie la présence

LEFT OUTER JOIN exclusif : vérifie l'absence

Avantage

  • Les résultats peuvent contenir n'importe quelle colonne, de toutes les requêtes jointes, dans n'importe quel ordre

Inconvénient

  • Nécessité d'ajouter le filtre WHERE IS NULL avec le LEFT OUTER JOIN exclusif
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...