sql in优化

来源:互联网 发布:淘宝查号截图是什么 编辑:程序博客网 时间:2024/06/06 05:46

客户反映程序很慢,开始以为数据量大,在表中查询使用的字段上,添加了索引,没有明显的效果,检查时发现以前的同事在sql server中写的函数中使用了in,而在in的结果集中会有2500条记录左右,执行时间需要13秒。找到问题根源,

修改方法: 把in后面的子查询作为一个表和主表关联,添加限制条件。

原来写法: select * from a where a.id in (select bid from b)

修改后写法: select a.* from a, b where a.id=b.bid

 

修改后执行时间为1秒。

 

所以,在使用in的时候,一定要考虑后面的集合到底有多大。如果很大,尽量不要使用in。

 

原创粉丝点击