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。与最严格的列创建复合索引。