Metody alternatywne 2

Poprawa wydajności zapytań w 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 ...
... ... ... ...
Poprawa wydajności zapytań w SQL Server

LEFT OUTER JOIN

Inkluzywny LEFT OUTER JOIN

Diagram Venna – inkluzywny Left Outer Join

Ekskluzywny LEFT OUTER JOIN

Diagram Venna – ekskluzywny Left Outer Join

Poprawa wydajności zapytań w SQL Server

Ekskluzywny 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 ...
Poprawa wydajności zapytań w SQL Server

Podsumowanie: INTERSECT i EXCEPT

INTERSECT: sprawdza obecność

EXCEPT: sprawdza brak

Zalety

  • Świetne do analizy danych
  • Usuwa duplikaty z wyników

Wada

  • Liczba i kolejność kolumn w SELECT muszą być identyczne w obu zapytaniach
Poprawa wydajności zapytań w SQL Server

Podsumowanie: EXISTS i NOT EXISTS

EXISTS: sprawdza obecność

NOT EXISTS: sprawdza brak

Zalety

  • Podzapytanie kończy działanie po pierwszym wyniku TRUE
  • Wyniki mogą zawierać dowolne kolumny z zapytania zewnętrznego, w dowolnej kolejności

Wada

  • Wyniki mogą zawierać tylko kolumny z zapytania zewnętrznego
Poprawa wydajności zapytań w SQL Server

Podsumowanie: IN i NOT IN

IN: sprawdza obecność

NOT IN: sprawdza brak

Zaleta

  • Wyniki mogą zawierać dowolne kolumny z zapytania zewnętrznego, w dowolnej kolejności

Wady

  • Wyniki mogą zawierać tylko kolumny z zapytania zewnętrznego
  • NOT IN nie zwraca wyników z powodu sposobu obsługi wartości NULL w podzapytaniu
Poprawa wydajności zapytań w SQL Server

Podsumowanie: INNER JOIN i ekskluzywny L.O.J

INNER JOIN: sprawdza obecność

ekskluzywny LEFT OUTER JOIN: sprawdza brak

Zaleta

  • Wyniki mogą zawierać dowolne kolumny ze wszystkich złączonych zapytań, w dowolnej kolejności

Wada

  • Ekskluzywny LEFT OUTER JOIN wymaga dodania warunku IS NULL w klauzuli WHERE
Poprawa wydajności zapytań w SQL Server

Czas na ćwiczenia!

Poprawa wydajności zapytań w SQL Server

Preparing Video For Download...