查看: 849|回复: 2

优化SQL语句的注意事项

 关闭 [复制链接]

签到天数: 2624 天

连续签到: 3 天

[LV.Master]至尊海神IIIIII

发表于 2010-6-13 23:21 |广东| 显示全部楼层 |阅读模式
1.尽量不要对列名进行函数处理。而是针对后面的值进行处理

例如where col1 = -5的效率比where -col1=5的效率要高

因为后面的条件对列值进行了计算。这样的条件下优化器无法使用索引

而是要针对所有值进行计算之后才能再比较

2.尽量使用和数剧列一样的值进行操作

如果col1是数值型

那么例如where col1 = 2和where col1= ‘2′

则前者效率更高

因为比较字符和数值型的时候

引擎需要把两者都转化成双精度然后进行比较

3.减少函数的使用

例如where col1 >= ‘2009-10-26′ and col1 <= ‘2009-10-27′

和where datediff(day,col1,getdate())=0

后者因为用到函数处理。所以col1上的索引又无法使用了

4.尽量不要用OR

一般对于OR的条件

优化器一般会使用全表扫描
PCOS系统下载站:http://zhuangji.wang

签到天数: 231 天

连续签到: 0 天

[LV.7]护海使者III

发表于 2010-6-20 07:17 |河南| 显示全部楼层
来学习下哦,谢谢分享
{:143_267:}
PCOS系统下载站:http://zhuangji.wang
回复 支持 反对

使用道具 举报

签到天数: 336 天

连续签到: 0 天

[LV.8]威海将军I

发表于 2010-6-22 07:28 |宁夏| 显示全部楼层
来学习下哦,谢谢分享
PCOS系统下载站:http://zhuangji.wang
回复 支持 反对

使用道具 举报

本版积分规则