注册 登录
编程论坛 SQL Server论坛

请问,同样的查询不同的写法,是否会影响速度?谢谢!

mansohu 发布于 2016-12-06 12:09, 1738 次点击
比如:FD3字段 是个bit字段(或分类字段,可以筛选掉大量条目的那种),请问如果表中条目很多时,以下3种写法,是否会影响查询速度?

  select * From TB1 where FD1=x and FD2=xx and FD3=1
  select * From TB1 where FD3=1 and FD1=x and FD2=xx
  select * From (select * From TB1 where FD3=1) a Where FD1=x and FD2=xx
1 回复
#2
mywisdom882016-12-07 09:49
我在网上看过where的执行顺序,说是从后面往前面执行的。如下
select bh,xm,xb from 学生 where bh=@bh and xm=@xm and xb=@xb
他是先过滤xb=@xb,再过滤xm=@xm ,最后才bh=@bh
所以,要把过滤出来的记录数最少的放到最后。
也就是说,如果有1000条记录,
先只用 xb=@xb 过滤后,只有100条
先只用 xm=@xm 过滤后,只有200条
先只用 bh=@bh 过滤后,只有300条
那么,就要这样写
where bh=@bh and xm=@xm and xb=@xb

如果
先只用 xb=@xb 过滤后,只有500条
先只用 xm=@xm 过滤后,只有200条
先只用 bh=@bh 过滤后,只有300条
那么,就要这样写
where xb=@xb and bh=@bh and xm=@xm



[此贴子已经被作者于2016-12-7 11:36编辑过]

1