日期:2014-05-18  浏览次数:20766 次

这样写SQL语句有啥不同,会影响查询速度吗?
表table1,在字段pono,pno上有建索引,字段active上未建任何索引。

SQL语句一:
select pono,pno from table1 where active='Y' and pono=@pono and pno=@pno

SQL语句二:
select pono,pno from table1 where pono=@pono and pno=@pno and active='Y'

问题:
两条语句是否能够用到索引,哪一条效率快一些?


------解决方案--------------------
使用变量可能导致优化器选择索引失误,可尝试强制使用索引,你两种写法没什么不同
------解决方案--------------------
你两条数据同时选中,然后CTRL+L,看执行计划,我觉得应该是50%vs50%
------解决方案--------------------
探讨
表table1,在字段pono,pno上有建索引,字段active上未建任何索引。

SQL语句一:
select pono,pno from table1 where active='Y' and pono=@pono and pno=@pno

SQL语句二:
select pono,pno from table1 where pono=@pono and pno=@pno and……

------解决方案--------------------
看看执行计划 贴出来看看
------解决方案--------------------
是一样的,会用到索引