SQL Server select語句執行順序

根據《Microsoft SQL Server2000 寶典》,Select語句的完整執行順序:
1.from子句組裝來自不同數據源的數據
2.where子句基於指定的條件對記錄行進行篩選
3.group by子句將數據劃分爲多個分組
4.使用聚集函數進行計算
5.使用having子句篩選分組
6.計算所有的表達式
7.使用order by對結果集進行排序

  對於第六條有疑意,計算所有的表達式是否指除了在聚集函數中計算過的以外的表達式,爲什麼要分兩步計算呢,爲什麼不在第五步之前與聚集函數一併計算

  補:對上述疑意的猜想:應該考慮到having子句還會過濾一些記錄,所以在過濾完再計算所有的表達式更優

 

注意:在select語句中,要善於使用select *,因爲SQL是描述性語言,Sql Server會選擇最快的索引來進行查詢

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章