Порядок запиту

Покращення продуктивності запитів у 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

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

                                 -- Порядок синтаксису
SELECT Country, Place, Magnitude -- 1. SELECT
FROM Earthquakes                                            
WHERE Magnitude >= 9            
ORDER BY Magnitude DESC;        
Покращення продуктивності запитів у SQL Server

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

                                 -- Порядок синтаксису
SELECT Country, Place, Magnitude -- 1. SELECT
FROM Earthquakes                 -- 2. FROM                            
WHERE Magnitude >= 9            
ORDER BY Magnitude DESC;        
Покращення продуктивності запитів у SQL Server

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

                                 -- Порядок синтаксису
SELECT Country, Place, Magnitude -- 1. SELECT
FROM Earthquakes                 -- 2. FROM                            
WHERE Magnitude >= 9             -- 3. WHERE
ORDER BY Magnitude DESC;        
Покращення продуктивності запитів у SQL Server

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

                                 -- Порядок синтаксису
SELECT Country, Place, Magnitude -- 1. SELECT
FROM Earthquakes                 -- 2. FROM                            
WHERE Magnitude >= 9             -- 3. WHERE
ORDER BY Magnitude DESC;         -- 4. ORDER BY       
Покращення продуктивності запитів у SQL Server

Порядок оброблення

                                 -- Порядок синтаксису | Порядок оброблення
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

Порядок оброблення

                                 -- Порядок синтаксису | Порядок оброблення
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

Порядок оброблення

                                 -- Порядок синтаксису | Порядок оброблення
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

Порядок оброблення

                                 -- Порядок синтаксису | Порядок оброблення
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

                        -- Порядок оброблення
SELECT Country, 
       PlaceName, 
       Magnitude
FROM LargeEarthquakes   -- 1. FROM — таблиці LargeEarthquakes не існує
WHERE Strength >= 9                 
ORDER BY Magnitud DESC;
--------------------------------------------------------------------------------
-- ERROR
Invalid object name 'LargeEarthquakes'.
Покращення продуктивності запитів у SQL Server

Оброблення WHERE

                        -- Порядок оброблення
SELECT Country, 
       PlaceName, 
       Magnitude
FROM Earthquakes                              
WHERE Strength >= 9     -- 2. WHERE — стовпця Strength не існує 
ORDER BY Magnitud DESC;
--------------------------------------------------------------------------------
-- ERROR
Invalid column name 'Strength'.
Покращення продуктивності запитів у SQL Server

Оброблення SELECT

                        -- Порядок оброблення
SELECT Country, 
       PlaceName,       -- 3. SELECT — стовпця PlaceName не існує
       Magnitude 
FROM Earthquakes                              
WHERE Magnitude >= 9                 
ORDER BY Magnitud DESC;
--------------------------------------------------------------------------------
-- ERROR
Invalid column name 'PlaceName'.
Покращення продуктивності запитів у SQL Server

Оброблення ORDER BY

                        -- Порядок оброблення
SELECT Country, 
       Place, 
       Magnitude
FROM Earthquakes                              
WHERE Magnitude >= 9                 
ORDER BY Magnitud DESC;-- 4. ORDER BY — помилка в назві стовпця
________________________________________________________

-- 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...