Alternativní metody 2

Improving Query Performance 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 ...
... ... ... ...
Improving Query Performance in SQL Server

LEFT OUTER JOIN

Inkluzivní LEFT OUTER JOIN

Vennův diagram inkluzivní LEFT OUTER JOIN

Exkluzivní LEFT OUTER JOIN

Vennův diagram exkluzivní LEFT OUTER JOIN

Improving Query Performance in SQL Server

Exkluzivní 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 ...
Improving Query Performance in SQL Server

Přehled: INTERSECT a EXCEPT

INTERSECT: kontroluje přítomnost

EXCEPT: kontroluje nepřítomnost

Výhody

  • Vhodné pro analýzu dat
  • Odstraňují duplikáty z výsledků

Nevýhoda

  • Počet a pořadí sloupců v příkazu SELECT musí být ve všech dotazech shodné
Improving Query Performance in SQL Server

Přehled: EXISTS a NOT EXISTS

EXISTS: kontroluje přítomnost

NOT EXISTS: kontroluje nepřítomnost

Výhody

  • Poddotaz se zastaví, jakmile se vyhodnotí jako TRUE
  • Výsledky mohou obsahovat libovolné sloupce z vnějšího dotazu v libovolném pořadí

Nevýhoda

  • Výsledky mohou obsahovat pouze sloupce z vnějšího dotazu
Improving Query Performance in SQL Server

Přehled: IN a NOT IN

IN: kontroluje přítomnost

NOT IN: kontroluje nepřítomnost

Výhoda

  • Výsledky mohou obsahovat libovolné sloupce z vnějšího dotazu v libovolném pořadí

Nevýhody

  • Výsledky mohou obsahovat pouze sloupce z vnějšího dotazu
  • NOT IN nevrací výsledky kvůli způsobu zpracování NULL hodnot v poddotazu
Improving Query Performance in SQL Server

Přehled: INNER JOIN a exkluzivní L.O.J

INNER JOIN: kontroluje přítomnost

exkluzivní LEFT OUTER JOIN: kontroluje nepřítomnost

Výhoda

  • Výsledky mohou obsahovat libovolné sloupce ze všech spojených dotazů v libovolném pořadí

Nevýhoda

  • U exkluzivního LEFT OUTER JOIN je nutné přidat podmínku IS NULL ve filtru WHERE
Improving Query Performance in SQL Server

Pojďme cvičit!

Improving Query Performance in SQL Server

Preparing Video For Download...