Improving Query Performance in SQL Server
Dean Smith
Founder, Atamai Analytics
SELECT Country, Place, Magnitude
FROM Earthquakes
WHERE Magnitude >= 9
ORDER BY Magnitude DESC;
Country | Place | Magnitude |
---|---|---|
CL | Bio-Bio; Chile | 9.5 |
US | Southern Alaska | 9.2 |
ID | off the west coast of northern Sumatra | 9.1 |
JP | near the east coast of Honshu; Japan | 9.1 |
... | ... | ... |
-- Syntax Order
SELECT Country, Place, Magnitude -- 1. SELECT
FROM Earthquakes
WHERE Magnitude >= 9
ORDER BY Magnitude DESC;
-- Syntax Order
SELECT Country, Place, Magnitude -- 1. SELECT
FROM Earthquakes -- 2. FROM
WHERE Magnitude >= 9
ORDER BY Magnitude DESC;
-- Syntax Order
SELECT Country, Place, Magnitude -- 1. SELECT
FROM Earthquakes -- 2. FROM
WHERE Magnitude >= 9 -- 3. WHERE
ORDER BY Magnitude DESC;
-- Syntax Order
SELECT Country, Place, Magnitude -- 1. SELECT
FROM Earthquakes -- 2. FROM
WHERE Magnitude >= 9 -- 3. WHERE
ORDER BY Magnitude DESC; -- 4. ORDER BY
-- Syntax Order | Processing Order
SELECT Country, Place, Magnitude -- 1. SELECT
FROM Earthquakes -- 2. FROM 1. FROM
WHERE Magnitude >= 9 -- 3. WHERE
ORDER BY Magnitude DESC; -- 4. ORDER BY
-- Syntax Order | Processing Order
SELECT Country, Place, Magnitude -- 1. SELECT
FROM Earthquakes -- 2. FROM 1. FROM
WHERE Magnitude >= 9 -- 3. WHERE 2. WHERE
ORDER BY Magnitude DESC; -- 4. ORDER BY
-- Syntax Order | Processing Order
SELECT Country, Place, Magnitude -- 1. SELECT 3. SELECT
FROM Earthquakes -- 2. FROM 1. FROM
WHERE Magnitude >= 9 -- 3. WHERE 2. WHERE
ORDER BY Magnitude DESC; -- 4. ORDER BY
-- Syntax Order | Processing Order
SELECT Country, Place, Magnitude -- 1. SELECT 3. SELECT
FROM Earthquakes -- 2. FROM 1. FROM
WHERE Magnitude >= 9 -- 3. WHERE 2. WHERE
ORDER BY Magnitude DESC; -- 4. ORDER BY 4. ORDER BY
SELECT Country,
PlaceName,
Magnitude
FROM LargeEarthquakes
WHERE Strength >= 9
ORDER BY Magnitud DESC;
-- Processing Order
SELECT Country,
PlaceName,
Magnitude
FROM LargeEarthquakes -- 1. FROM - table LargeEarthquakes does not exist
WHERE Strength >= 9
ORDER BY Magnitud DESC;
--------------------------------------------------------------------------------
-- ERROR
Invalid object name 'LargeEarthquakes'.
-- Processing Order
SELECT Country,
PlaceName,
Magnitude
FROM Earthquakes
WHERE Strength >= 9 -- 2. WHERE - column Strength does not exist
ORDER BY Magnitud DESC;
--------------------------------------------------------------------------------
-- ERROR
Invalid column name 'Strength'.
-- Processing Order
SELECT Country,
PlaceName, -- 3. SELECT - column PlaceName does not exist
Magnitude
FROM Earthquakes
WHERE Magnitude >= 9
ORDER BY Magnitud DESC;
--------------------------------------------------------------------------------
-- ERROR
Invalid column name 'PlaceName'.
-- Processing Order
SELECT Country,
Place,
Magnitude
FROM Earthquakes
WHERE Magnitude >= 9
ORDER BY Magnitud DESC;-- 4. ORDER BY - column misspelling
________________________________________________________
-- ERROR
Invalid column name 'Magnitud'.
SELECT Country,
Place,
Magnitude
FROM Earthquakes
WHERE Magnitude >= 9
ORDER BY Magnitude DESC;
Country | Place | Magnitude |
---|---|---|
CL | Bio-Bio; Chile | 9.5 |
US | Southern Alaska | 9.2 |
ID | off the west coast of northern Sumatra | 9.1 |
JP | near the east coast of Honshu; Japan | 9.1 |
... | ... | ... |
1. FROM
2. ON
3. JOIN
4. WHERE
5. GROUP BY
6. HAVING
7. SELECT
8. DISTINCT
9. ORDER BY
10. TOP
Improving Query Performance in SQL Server