1. Primary Key
字段的长度尽量小,能用small integer 就不要用 integer
2. Data Type
文字字段若长度固定,能用char,nchar 就不要用varchar, nvarchar 如: 身份证号码, 手机号
3.
设计字段时,若其值可有可无,最好也给一个默认值,并设成[不允许为NULL] (一般字段默认为[允许为NULL]). 因为SQL SERVER 在存放和查询有NULL的数据表时,会花费额外的运算动作。
4. INDEX
5.
避免在WHERE子句中对字段使用函数。如:查询10万条数据,相当于故交10万次函数,绝对的性能杀手
6.
UNION性能低于UNION ALL,因为会有去重计算。所以在可以用UNION ALL的情况下尽量不适用UNION
7.
AND 与 OR: 在AND运算中,只要有一个条件用到索引,即可大幅提升查询速度。
在OR运算中,只有所有条件都可用到索引,才能是用索引提升查询速度。
8. in & exists
很多人都说能用exists就别用in,这样可以大幅提升查询速度。其实并不是所有情况都是exists效率高,经过试验,查询速度也依赖于前后两个表的数据量大小。
9. NOT IN 和 EXCEPT
(如果有兴趣可以验证以上结果,本人用实例已经验证过,这里就只跟大家share这些conclusions.
select cc from tb1 except select cc from tb2; select cc from tb1 where cc not in (select cc from tb2);
原文:http://www.cnblogs.com/Air-er/p/3559494.html