查询性能优化 in and union

环境:sql server 2005
表B两个字段id(int),name(varchar(10)),在字段id上建立了索引,数据量100万,随即生成的数据。

话题比较查询条件中的in与or性能的比较,比较下面两种语句的性能。
A、select * from a where a.id in (1,2)
B、select * from a where a.id =1 union  select * from a where a.id =2
从网上的资料看,推荐使用第二种方法B。
从执行计划中可以看出语句A的开销占25%,语句B的开销占75%。
语句A对表进行了一次扫描,查找方式索引查找与rid查找。
语句B对表扫描过2次,在每一次扫描中查找方式索引查找与rid查找。

我得出的结论是在这种条件下in的性能要高于or。
实际分析计划如下:

posted on   lucika.zh  阅读(1247)  评论(5编辑  收藏  举报

导航

< 2009年8月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示