クエリの順序

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