解决方案 »

  1.   

    在早期的oracle还是有差异的,早期的oracle中where条件是固定从右向左执行的
    但是随着oracle的发展,这种差异已经没有了,oracle可以自己选择一种最佳的执行方式
    这两种写法目前效率应该是一样的,至于其他的数据库就不确定了
      

  2.   

    对于你这两条语句,执行效率是一样的.
    对于你这条语句,估计会先按查询条件过滤,之后再进行hash join的联合.看执行计划才是最准的.sqlserver 会先做交叉连接,然后根据链接条件筛选,然后根据where再进行筛选.
    mysql没注意过这方面.不过对于复杂sql,里面有调用视图的,有遇到过,不同的顺序,CBO模式下,竟然也会执行效率不同,执行计划也不同.
      

  3.   

    刚才我说的sqlserver的执行顺序是逻辑处理步骤,和实际好象不一样.
    刚看了一个sqlserver的执行计划,它是先把A表过滤了,再和B做做nest loop.
    所以具体还要看执行计划了
      

  4.   

    早起oracle 是有区别的。 所以要把限定条件越清晰的,能过滤越多数据的条件 放到越后面,但是 后面好像 已经没什么区别了。