Alternatieve methoden 2

De queryprestaties verbeteren in 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 ...
... ... ... ...
De queryprestaties verbeteren in SQL Server

LEFT OUTER JOIN

Inclusieve LEFT OUTER JOIN

Vendiagram Inclusieve Left Outer Join

Exclusieve LEFT OUTER JOIN

Vendiagram Exclusieve Left Outer Join

De queryprestaties verbeteren in SQL Server

Exclusieve LEFT OUTER JOIN

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 ...
De queryprestaties verbeteren in SQL Server

Herhaling: INTERSECT en EXCEPT

INTERSECT: controleert op aanwezigheid

EXCEPT: controleert op afwezigheid

Voordelen

  • Goed voor dataverkenning
  • Verwijdert duplicaten uit de resultaten

Nadeel

  • Aantal en volgorde van kolommen in SELECT moeten in beide queries gelijk zijn
De queryprestaties verbeteren in SQL Server

Herhaling: EXISTS en NOT EXISTS

EXISTS: controleert op aanwezigheid

NOT EXISTS: controleert op afwezigheid

Voordelen

  • Subquery stopt zodra deze TRUE is
  • Resultaten mogen elke kolom uit de buitenste query bevatten, in elke volgorde

Nadeel

  • Resultaten mogen alleen kolommen uit de buitenste query bevatten
De queryprestaties verbeteren in SQL Server

Herhaling: IN en NOT IN

IN: controleert op aanwezigheid

NOT IN: controleert op afwezigheid

Voordeel

  • Resultaten mogen elke kolom uit de buitenste query bevatten, in elke volgorde

Nadelen

  • Resultaten mogen alleen kolommen uit de buitenste query bevatten
  • Geen resultaten door hoe NOT IN nulls in de subquery afhandelt
De queryprestaties verbeteren in SQL Server

Herhaling: INNER JOIN en exclusieve L.O.J

INNER JOIN: controleert op aanwezigheid

exclusieve LEFT OUTER JOIN: controleert op afwezigheid

Voordeel

  • Resultaten mogen elke kolom uit alle joins bevatten, in elke volgorde

Nadeel

  • Je moet de IS NULL-voorwaarde in WHERE toevoegen bij een exclusieve LEFT OUTER JOIN
De queryprestaties verbeteren in SQL Server

Laten we oefenen!

De queryprestaties verbeteren in SQL Server

Preparing Video For Download...