例如:有T1,T2两个结构相同的表,做except操作
select * from T1
except
select * from T2
如果T1,T2中各有40000条数据,那么此时的except操作是不是要比较4W*4W=16亿次?

解决方案 »

  1.   

    我觉得应该是这样的T1里取出一条数据 然后去遍历T2 找到了对应的 就停止遍历 最多遍历一个表 40000次 
    如果每条都这样 那就是4W*4W=16亿次 
    有些应该可以遍历到一半就好了
      

  2.   

    看了下执行计划
    先是扫描第一个表,然后对第一个表排序,在扫描第二个表,然后俩个表嵌套循环(left anti semi join)
    left anti semi join 不知道什么意思
      

  3.   


    不会的。楼主算的是最坏的情况。
    而且这种情况用EXCEPT效果肯定不好。