Select *
From (Select * From Bi_Item_Info) a
Where bii_itemno = '1001'
Select * From Bi_Item_Info
Where bii_itemno = '1001'
以上两条语句从执行计划看是一模一样的实际是否一样? 特别是对于第一条SQL是先where 在 select 还是先select 再 where 

解决方案 »

  1.   

    单纯这个语句,其实第一句有多余的。不过可能你只是举例子而已。执行计划一样,那正么SQLServer的编译器已经帮你转换成一样的语句了。
      

  2.   

    楼主查询在编译过程中会将一些简单的语句自行优化,选择一个较快的执行计划但是如果逻辑嵌套较深,第一增加分析开销,第二产生的执行计划不一定效率高所以建议在编写TSQL时,尽量简化逻辑,避免较多的嵌套查询