仅仅就"判断记录是否存在" 当然是exists效率高exists是一种半连接的方式,就是探测到有记录就返回,就好比你查看某个会议室是否有被人占用,你只需要看看里面有人没有,而不是去把里面的人数一遍,看看有几个人在开会 

解决方案 »

  1.   

    exists (select top 1 * from ... where ...)
    是不是效率更高?
      

  2.   


    是滴,在oracle中是select count(*) from tablename where rownum=1的方式来做这个优化的
      

  3.   

    exists 的效率会高。相同设置的情况下。存在的判断存在短路机制。count没有短路机制。 
      

  4.   

    exists.
    不过你感觉你比的方向错了.为什么不比exists与top 1的方式,我感觉这两个才有可比性.
      

  5.   

    几乎所有情况下都是EXISTS效率高,人家是专门干这事的
      

  6.   

    没感觉着2个有可比性啊。用COUNT(*)判断是否存在 要用相关子查询啊。判断count(*)是否为0 感觉完全没必要啊。
      

  7.   

    肯定是exists效率高,再打个简单的比方,如果用count(*),还要做一次是否为0的判断
      

  8.   

    这两个作用放置不同就能比较出特点了,单独看效率肯定existst高,exists可以直接加在判断条件后面,看相应条件是否满足执行语句条件,count(*)可以作为先判断条件,如果满足再单独执行相应语句,一般用count(1) 。
      

  9.   

    exists在存在性检测领域是专家,count(*)是半路出家
      

  10.   

    个人觉得在判断是否存在时候也是用exists比较好点,因为count需要统计一遍然后得到结果,exists是直接看表中是否有,然后返回结果