当前位置: 代码迷 >> Sql Server >> 查询效率?解决方案
  详细解决方案

查询效率?解决方案

热度:100   发布时间:2016-04-24 09:59:29.0
查询效率?
select c1,(select c2 from b where b.id = a.id) from a
select c1,c2 from a left join b on a.id = b.id

b.id建有聚合索引,请问,以上两种查询哪个效率更高,更快?
------解决思路----------------------
第一种是子查询,

第二种是join方式,

一般来说,第二种join的方式效率会更高,不过这个还得看具体的执行计划

你把两个语句放一起,执行后,看执行计划,会有百分比,一看就知道那个效率高,如果都是50%,说明效率是一样的
------解决思路----------------------
感觉这2个语句只有在表A和表B是1对1的关系的时候结果才是一样的。如果1对多 第一个语句报错吧。子查询返回多个值。
不按照顺序排列比较正常吧。他扫描聚集索引之后还和表B进行ID上的匹配啊。
感觉不按照C1顺序比较正常啊
------解决思路----------------------
引用:
谢谢您。还有就是关于排序的问题
select a.c1,b.c2 from a left join b on a.id = b.id
a.c1建有聚集索引,为什么查询后不按c1排序?谢谢


这个不一定的,如果你要按照c1字段排序,那么必须使用order by 子句来指定
  相关解决方案