1、从右到左,从上到下
2、这个MSDN有介绍

解决方案 »

  1.   

    Nested Loops Join涉及两个数据集,一个叫inner set,一个叫outer set,在图形化执行计划中,位于上方的是outer set,下方的为innser set。这种算法把inner set的数据集与outer set一一匹配,直到inner set的数据全部扫描完毕,基于这个算法,对于两个数据集都很小,或者inner set数据很小时这种算法可算是最佳关联算法。
      

  2.   


    额  结完贴发现还有问题。。
    顶楼里的图片的语句是:
    update a set a.cuks=isnull(a.cuks,0)+isnull(b.cuks,0) from ##tmptiaozkcdp a 
     join (select gfrom,code,colorid,xsize,sum(amount) as cuks from g_billd_xs_pos d inner join g_billm_xs_pos m on d.scripno=m.scripno
    where (ioflag=6  ) and gfrom=@shopid and iodate>@iodate   group by gfrom,code,colorid,xsize) b
    on a.n_leix=1 and a.shopid=b.gfrom and a.code=b.code and a.colorid=b.colorid  and a.xsize=b.xsize为什么会出现4次循环嵌套连接?  我记得oracle里sql语句里的一个join在执行计划里就只有一个NL连接啊   ##tmptiaozkcdp = 3000行,   b=30行,   那b结果集肯定要作为inner set,  inner set都是在图形下方,  那这个执行计划看起来没错啊  为什么实际上一执行就卡住几分钟出不来结果。。
      

  3.   

    从最后边的那个开始,是##临时表和g_billm_xs_pos关联产生出来的数据,然后第二个是因为键值查找中的列,没有覆盖索引,导致必须借助聚集索引来获取对应的列的数据,你可以理解为这是两个“数据集”再次关联。然后生成一个中间结果集,在和g_billd_xs_ops关联,产生第三个结果集,再和RID查找那个数据集再次关联。你这个执行计划没贴全,把这个执行计划的最大开销部分贴出来