De queryprestaties verbeteren in SQL Server
Dean Smith
Founder, Atamai Analytics
SELECT CustomerID,
CompanyName,
ContactName
FROM Customers c
WHERE EXISTS
(SELECT 1
FROM Orders o
WHERE c.CustomerID = o.CustomerID);
| CustomerID | CompanyName | ContactName |
|---|---|---|
| ALFKI | Alfreds Futterkiste | Maria Anders |
| LAUGB | Laughing Bacchus Wine Cellars | Yoshi Tannamuri |
| QUICK | QUICK-Stop | Horst Kloss |
| ... | ... | ... |
SELECT CustomerID,
CompanyName,
ContactName
FROM Customers
WHERE CustomerID IN
(SELECT CustomerID
FROM Orders);
| CustomerID | CompanyName | ContactName |
|---|---|---|
| ALFKI | Alfreds Futterkiste | Maria Anders |
| LAUGB | Laughing Bacchus Wine Cellars | Yoshi Tannamuri |
| QUICK | QUICK-Stop | Horst Kloss |
| ... | ... | ... |
EXISTS stopt met zoeken in de subquery zodra de voorwaarde TRUE is
IN verzamelt alle resultaten uit een subquery voordat ze naar de buitenste query gaan
EXISTS te gebruiken in plaats van IN met een subquerySELECT CustomerID,
CompanyName,
ContactName
FROM Customers c
WHERE NOT EXISTS
(SELECT 1
FROM Orders o
WHERE c.CustomerID = o.CustomerID);
| CustomerID | CompanyName | ContactName |
|---|---|---|
| FISSA | FISSA Fabrica Inter. Salchichas S.A. | Diego Roel |
| PARIS | Paris spécialités | Marie Bertrand |
SELECT CustomerID,
CompanyName,
ContactName
FROM Customers
WHERE CustomerID NOT IN
(SELECT CustomerID
FROM Orders);
| CustomeID | CompanyName | ContactName |
|---|---|---|
| FISSA | FISSA Fabrica Inter. Salchichas S.A. | Diego Roel |
| PARIS | Paris spécialités | Marie Bertrand |
SELECT UNStatisticalRegion AS UN_Region
,CountryName
,Capital
FROM Nations
WHERE Capital NOT IN
(SELECT NearestPop
FROM Earthquakes);
| UN_Region | CountryName | Capital |
|---|---|---|
SELECT UNStatisticalRegion AS UN_Region
,CountryName
,Capital
FROM Nations
WHERE Capital NOT IN
(SELECT NearestPop
FROM Earthquakes
WHERE NearestPop IS NOT NULL);
| UN_Region | CountryName | Capital |
|---|---|---|
| South Asia | India | New Delhi |
| East Asia and Pacific | Indonesia | Jakarta |
| East Asia and Pacific | East Timor | Dili |
| Sahara Africa | Comoros | Moroni |
| ... | ... | ... |
Voordelen
Nadelen
De queryprestaties verbeteren in SQL Server