第1和第2种写法,效率是一样的。本质上都是通过表的内连接来实现,只是写法不同而已,第1个采用了ANSI SQL的标准写法,而第2种呢,在关联的表很多的情况下,看着有点头晕,一堆的连接条件。
而第3种,我觉得效率比可能会比第1和2种的效率,要差。为什么呢?呵呵 看着有点头晕。其实sql server在解析这些sql语句,从而生产执行计划时,如果你的语句写法,比较简洁,那么往往,更有可能生产好的执行计划,所以速度会更快。说到底,sql server和人是一样的,也需要来理解我们写的sql语句,如果你写的语句,粗一看,就让人头晕,我想sql server也需要花更多的cpu时间,来解析,分析,标准化,这个语句的,所以消耗的资源就会更多,速度自然就会慢的

解决方案 »

  1.   

    第一个效率最高,第二,第三看你在各个表格中的数据行数了
    第二个等于full join,效率肯定比inner join 差,小数据量表格,感觉不出差异
      

  2.   

    1、2一样。3的话,索引合理、数据能在子查询中快速筛选的话,效率往往是最高的。不过你要测的话,最好在实际环境下,把三个查询放到一个查询界面,打开执行计划(ctrl+M),然后执行,看看百分比,基本上就知道个大概了