Improving Query Performance in SQL Server
Dean Smith
Founder, Atamai Analytics
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 | ... |
... | ... | ... | ... |
Inclusive LEFT OUTER JOIN
Exclusive 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 | ... |
INTERSECT
: checks for presence
EXCEPT
: checks for absence
Advantages
Disadvantage
SELECT
statement must be the same between queriesEXISTS
: checks for presence
NOT EXISTS
: checks for absence
Advantages
Disadvantage
IN
: checks for presence
NOT IN
: checks for absence
Advantage
Disadvantages
NOT IN
handles nulls in the sub-queryINNER JOIN
: checks for presence
exclusive LEFT OUTER JOIN
: checks for absence
Advantage
Disadvantage
IS NULL
WHERE
filter condition with the exclusive LEFT OUTER JOIN
Improving Query Performance in SQL Server