大神的總結:
html
http://www.cnblogs.com/knowledgesea/p/4177830.htmlspa
參考:《Microsoft SQL Server 2008技術內幕:T-SQL查詢》htm
查詢語句的執行順序:
一、FROM 子句:執行順序爲從後往前、從右到左。數據量較少的表儘可能放在後面。
二、WHERE子句:執行順序爲自下而上、從右到左。將能過濾掉最大數量記錄的條件寫在WHERE 子句的最右。
三、GROUP BY:執行順序從左往右分組,最好在GROUP BY前使用WHERE將不須要的記錄在GROUP BY以前過濾掉。
四、HAVING 子句:消耗資源。儘可能避免使用,HAVING 會在檢索出全部記錄以後纔對結果集進行過濾,須要排序等操做。blog
HAVING子句必須跟在GROUP BY 後面,不能單獨存在!
排序
五、SELECT子句:少用*號,儘可能取字段名稱。ORACLE 在解析的過程當中, 經過查詢數據字典將*號依次轉換成全部的列名, 消耗時間。
六、ORDER BY子句:執行順序爲從左到右排序,消耗資源。資源
ORDER BY子句出現的位置必須在SELECT中的最後一個子句。
get