首页 新闻 会员 周边 捐助

关于两种sql的性能比较,求大能探讨!

0
[已解决问题] 解决于 2019-05-05 11:47

起因是想查询一个没有数据行,且只有一列的结果集。

第一种:

  select 0 as EmpId where 1<>1

第二种:

  a)select a1 as EmpId from table1 where 1<>1

  b)select top 0 a1 as EmpId from table1

 

低数据量应该区别不大,

但是如果table1有上千万条数据,第二种中b大概不受影响,a需检索千万行...

至于第一种,一般想来应该是最不耗资源的,但和第二种b相比可能几乎没啥区别。但是第一种会不会是先将“0 as EmpId”转为一行一列的表,然后检索“1<>1”?如果是先转表,那么就想差一个建表的时间了...

心未鳴的主页 心未鳴 | 菜鸟二级 | 园豆:223
提问于:2014-04-29 09:11
< >
分享
最佳答案
0

三者应该都是一样的,你选择包含实际查询计划,看执行计划具体怎么做得就可以了

1<>1这种条件,sql server本身就会做优化,不会去检索表

奖励园豆:5
AlphaQcode | 菜鸟二级 |园豆:251 | 2014-05-27 10:59
其他回答(1)
0

第一种语句本来就不对吧,1 <> 1这个条件是false,无论怎么样都查不出出来数据。

ocean | 园豆:824 (小虾三级) | 2014-04-29 09:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册