在SQLServer中,>和>=运算符,哪种更快?有区别?>=是换算成>和=作两次比较?

解决方案 »

  1.   


    自己测测吧插入上万条数据其实 > 和 >=没啥好比的取出来的结果都不同>= 和 > N and = N还可以比一下没过没人分开写SET STATISTICS io ON
    SET STATISTICS time ON
    go--这里放sql语句
    go
    SET STATISTICS profile OFF
    SET STATISTICS io OFF
    SET STATISTICS time OFF
      

  2.   

    额,你去了解一下“寄存器的状态位”就明白了就像前两天在这个帖子里说滴http://topic.csdn.net/u/20110513/14/0fc20081-2fa9-4b3c-b7ba-ccda08bcb92e.html如果你知道这些计算机方面的基本认知,就不会去提这个问了
      

  3.   

    也就是说,没有啥多余的东西无论>,还是>=对于计算机来说,运算过程是一样滴,做一次减法运算,然后看寄存器的状态标识是啥
      

  4.   

    转一个稍微详细的解释,下面所说的Flag标志实际就是指“寄存器的状态标识位”
      

  5.   

    上面是比较指令然后我们看看跳转指令这些都是一类指令
    都是根据标志寄存器判定是否调转的指令====================================================
    指令的汇编格式及功可以
    根据条件码的值转移:
    JZ(JE) OPR    ZF=1
    JNZ(JNE) OPR  ZF=0
    JS OPR        SF=1
    JNS OPR       SF=0
    JO OPR        OF=1
    JNO OPR       OF=0
    JP OPR        PF=1
    JNP OPR       PF=0
    JC OPR        CF=1
    JNC OPR       CF=0比较两个无符号数,根据比较的结果转移
    JB(JNAE,JC) OPR  CF=1        被减数小于减数则转移
    JNB(JAE,JNC) OPR CF=0        被减数大于或等于减数则转移
    JBE(JNA) OPR     CF或ZF=1    被减数小于或等于减数则转移
    JNBE(JA) OPR     CF或ZF=0    被减数大于减数则转移比较两个带符号数,根据比较结果转移
    JL/JNGE OPR      SF异或OF=1          被减数小于减数则转移    
    JNL/JGE          SF异或OF=0          被减数不小于减数则转移
    JLE/JNE          (SF异或OF)与ZF=1    被减数不大于减数则转移
    JNLE/JG          (SF异或OF)与ZF=0    被减数大于减数则转移
      

  6.   

    select COUNT(*) from TABLE(nolock)
    where create_date >='2010-01-01'
    测试过,不过测试结果不太能说明问题;我分别用>和>=测试
                     第3次          第2次           第1次           总执行时间平均
    >:  总执行时间 4277 4215 4043 4178.3330
    >=  总执行时间 5526 2966 3341 3944.3330这样反而是>=更快了。
      

  7.   

    首先谢谢您的答复,运算过程是一样,做一次运算。但是还会有比较的步骤。>只比较一次,>=就比较两次了吧。
      

  8.   

    电脑应该是比较二进制的吧,比较傻的是1位1位比较,这样 >= 和 > 没区别SQL好像有优化。在哪看过,好像SqlServer中用>= 较好
      

  9.   

    额,上面贴的一堆算是白贴了
    用无符号数做例子吧 >= 让计算机去执行代码是
    cmp oprd1,oprd2
    JNB [xxxx]而> 让计算机去执行是cmp oprd1,oprd2
    JNBE [xxxx]至是一个跳转指令的区别,并不存在啥判断一次还是判断两次
      

  10.   

    应该没有什么区别。
    是不是++C和C++速度方面也没有什么区别?
    类似的a=a+b和a+=b相比,是不是只是不好看一些?
      

  11.   

    >=是<的逆运算,>和<没理由有区别,楼主明白了吧?
      

  12.   

    thanks。到汇编位置只做cmp一次指令。
      

  13.   


    这位大哥贴的很详细,但是还不够啊。
    JNB 和 JNBE消耗的CPU时钟数是否一样呢?
      

  14.   

    >和>=基本上没什么区别吧
      

  15.   

    SQL:
    使用>=替代>,这样DBMS可直接跳到等于的记录上,可能会避免向前的扫描工作参考FortuneBase中资料
    www.cnblogs.com/mail-ricklee