您的位置:首页 > 数据库

写SQL时尽量不要对字段进行运算操作

2008-02-16 23:29 405 查看
有时我们在做项目时,需要在SQL文里面对某个字段经过运算后再与一个常量比较:那么这将会对运行性能产生很大的影响:
请看下面SQL的执行效率:
select * from iroomtypeprice where amount/30< 1000(11秒)
当改写成下面的SQL语句时效率明显提高了:

select * from iroomtypeprice where amount< 1000*30(<1秒)
语句1因为要对没没条记录的字段amount做一个/的运算,所以必须进行全表扫描,表的合适索引不会起作用;而语句二就会用到表上的合适索引。因此效率明显提高。

另外,在where后面尽量少用substring等函数,这样也可以提高执行效率,如:
select * from iroomtypeprice where substring(card_no,1,4)='5378'(13秒)改成
select * from iroomtypeprice where card_no like '5378%'(<1秒)

select * from iroomtypeprice wher econvert(char(10),date,112)='19991201'(10秒)
select * from iroomtypeprice where date= '1999/12/01'(< 1秒)

文章引用自:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: