Порядок запроса

Повышение производительности запросов в 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
... ... ...
Повышение производительности запросов в SQL Server

Порядок синтаксиса

                                 -- Syntax Order
SELECT Country, Place, Magnitude -- 1. SELECT
FROM Earthquakes                                            
WHERE Magnitude >= 9            
ORDER BY Magnitude DESC;        
Повышение производительности запросов в SQL Server

Порядок синтаксиса

                                 -- Syntax Order
SELECT Country, Place, Magnitude -- 1. SELECT
FROM Earthquakes                 -- 2. FROM                            
WHERE Magnitude >= 9            
ORDER BY Magnitude DESC;        
Повышение производительности запросов в SQL Server

Порядок синтаксиса

                                 -- Syntax Order
SELECT Country, Place, Magnitude -- 1. SELECT
FROM Earthquakes                 -- 2. FROM                            
WHERE Magnitude >= 9             -- 3. WHERE
ORDER BY Magnitude DESC;        
Повышение производительности запросов в SQL Server

Порядок синтаксиса

                                 -- Syntax Order
SELECT Country, Place, Magnitude -- 1. SELECT
FROM Earthquakes                 -- 2. FROM                            
WHERE Magnitude >= 9             -- 3. WHERE
ORDER BY Magnitude DESC;         -- 4. ORDER BY       
Повышение производительности запросов в SQL Server

Порядок обработки

                                 -- 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       
Повышение производительности запросов в SQL Server

Порядок обработки

                                 -- 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       
Повышение производительности запросов в SQL Server

Порядок обработки

                                 -- 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     
Повышение производительности запросов в SQL Server

Порядок обработки

                                 -- 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    
Повышение производительности запросов в SQL Server

Ошибки обработки


SELECT Country, 
       PlaceName, 
       Magnitude
FROM LargeEarthquakes            
WHERE Strength >= 9                 
ORDER BY Magnitud DESC;
Повышение производительности запросов в SQL Server

Обработка FROM

                        -- 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'.
Повышение производительности запросов в SQL Server

Обработка WHERE

                        -- 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'.
Повышение производительности запросов в SQL Server

Обработка SELECT

                        -- 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'.
Повышение производительности запросов в SQL Server

Обработка ORDER BY

                        -- 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'.
Повышение производительности запросов в SQL Server

Без ошибок

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
... ... ...
Повышение производительности запросов в SQL Server

Логический порядок обработки

1.  FROM

2. ON
3. JOIN
4. WHERE
5. GROUP BY
6. HAVING
7. SELECT
8. DISTINCT
9. ORDER BY
10. TOP
Повышение производительности запросов в SQL Server

Давайте потренируемся!

Повышение производительности запросов в SQL Server

Preparing Video For Download...