Metodi alternativi 2

Migliorare le prestazioni delle query 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 ...
... ... ... ...
Migliorare le prestazioni delle query in SQL Server

LEFT OUTER JOIN

Inclusivo LEFT OUTER JOIN

Diagramma di Venn Left Outer Join inclusivo

Esclusivo LEFT OUTER JOIN

Diagramma di Venn Left Outer Join esclusivo

Migliorare le prestazioni delle query in SQL Server

LEFT OUTER JOIN esclusivo

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 ...
Migliorare le prestazioni delle query in SQL Server

Ripasso: INTERSECT e EXCEPT

INTERSECT: verifica la presenza

EXCEPT: verifica l’assenza

Vantaggi

  • Ottimo per interrogare i dati
  • Rimuove i duplicati dai risultati

Svantaggio

  • Numero e ordine delle colonne nel SELECT devono coincidere tra le query
Migliorare le prestazioni delle query in SQL Server

Ripasso: EXISTS e NOT EXISTS

EXISTS: verifica la presenza

NOT EXISTS: verifica l’assenza

Vantaggi

  • La sottoquery si ferma non appena valuta TRUE
  • I risultati possono contenere qualsiasi colonna della query esterna, in qualunque ordine

Svantaggio

  • I risultati possono contenere solo colonne della query esterna
Migliorare le prestazioni delle query in SQL Server

Ripasso: IN e NOT IN

IN: verifica la presenza

NOT IN: verifica l’assenza

Vantaggio

  • I risultati possono contenere qualsiasi colonna della query esterna, in qualunque ordine

Svantaggi

  • I risultati possono contenere solo colonne della query esterna
  • Nessun risultato per come NOT IN gestisce i null nella sottoquery
Migliorare le prestazioni delle query in SQL Server

Ripasso: INNER JOIN e L.O.J esclusivo

INNER JOIN: verifica la presenza

LEFT OUTER JOIN esclusivo: verifica l’assenza

Vantaggio

  • I risultati possono contenere qualsiasi colonna, da tutte le query unite, in qualunque ordine

Svantaggio

  • Necessità di aggiungere il filtro WHERE IS NULL con il LEFT OUTER JOIN esclusivo
Migliorare le prestazioni delle query in SQL Server

Passiamo alla pratica !

Migliorare le prestazioni delle query in SQL Server

Preparing Video For Download...