1。請務必使用長時間運行的查詢交易
請務必使用長時間運行的查詢的交易,如果有預期的長期運行的事務,並期待大的記錄輸出。您可以使用BEGIN TRAN和END TRAN內的交易。使用事務這種方式,它將本身個別交易緩衝高速緩存的地方,也使其更快的存儲器分配。
2。不要使用SELECT *
其中最常見的性能和可伸縮性問題是查詢返回太多的列或行數太多。我見過許多開發人員使用和濫用SELECT * FROM查詢。SELECT *查詢不僅返回不必要的數據,但它也可以強制列在SELECT子句中的查詢計劃,因爲聚簇索引掃描時,也被認爲是由優化器確定執行計劃的索引。
3。避免在WHERE子句中顯式或隱式的功能
總是儘量避免在WHERE子句中顯式或隱式的功能。
4。做替換所有子帶連接的查詢
子查詢把自己作爲內聯代碼,而這是更快的表聯接使用。
如果可能的話儘量避免子查詢內加入。
5。使用UNION ALL而不是UNION
爲了提高查詢速度,使用UNION ALL語句。UNION ALL和丟棄重複行的結果集,而UNION語句不。
6。使用存儲過程或參數化查詢。
7。適當地使用臨時表和表變量。
8。在觸發器中,不要使用長行動。
9。避免昂貴的運營商,如NOT LIKE。
10。考慮上的索引列在WHERE,ORDER BY,GROUP BY,DISTINCT子句。
11。與最嚴格的列創建複合索引。