sql分析时势冲后到前的,也就是说,最后一个条件是最先起作用的,所以应该放在后面。

解决方案 »

  1.   

    好象不是,
    ORACLE会对SQL查询进行优化
      

  2.   

    http://dev.csdn.net/develop/article/19/19893.shtm
      

  3.   

    Where条件的顺序1、如果是多表连接,表连接的条件放在普通条件前
    2、如果使用到了索引,先使用该条件
    3、根据条件中筛选得到的记录百分比,越小的越靠前
    4、数据量大的时候尽量不使用in
    例如:
    where a.id=b.id                   --表连接条件
    and a.serv_id='123456'            --该字段用到索引
    and b.state='B'                   --筛选出记录为总记录的25%
    and a.month='200505'              --筛选出记录为总记录的60%
      

  4.   

    先检讨一下,上面的回答错了,我也是刚学优化没多久。更正如下Where条件的顺序1、如果是多表连接,表连接的条件放在普通条件前
    2、如果使用到了索引,该条件靠后
    3、根据条件中筛选得到的记录百分比,越小的越靠后
    4、数据量大的时候尽量不使用in
    例如:
    where a.id=b.id                   --表连接条件
    and a.month='200505'              --筛选出记录为总记录的60%
    and b.state='B'                   --筛选出记录为总记录的25%
    and a.serv_id='123456'            --该字段用到索引
      

  5.   

    Oracle扫描语句的时候,自右向左,其它数据库,据我所知,mysql, sqlserver, access, postgresql, db2都是自左向右。因此
    oracle优化时,从左向右,先大范围,再小范围,
    其它数据库,从左向右,先小范围,再大范围。
    具体依据,建议看看 sql performance tuning一书,网上有下载的,讲的非常好。各种数据库中的sql优化都有提及。