前提是where后面的语句均不是主键。网上很多人认为应该把尽肯能缩小查询范围的语句写在后面 理论依据是在CBO的情况下SQL的语句解析顺序是从后到前面的。我做了测试也还是发现结果是没有发生改变,也很疑问,哪位可以更进步的解释下吗:或者给个例子。

解决方案 »

  1.   

    where后面的条件的顺序没有关系,数据库会自己选择
      

  2.   


    Oracle是根据statistic数据统计来决定是走RBO(Rule-BasedOptimization),还是走CBO(Cost-BasedOptimization),会去选择哪种执行计划更划算,影响是否走相关的索引等.如果是CBO的话,它依靠准确的(或者说比较准确的)统计信息来产生优化的执行路径,如果没有做过统计,CBO也就没有做cost评估的依据,所以虽然是CBO,但是实际上还是用RBO了,而且如果不常做统计的话,由于CBO是以统计为依据的,所以这时CBO的依据信息有问题,CBO也会不准。 所以 DBA 需要确保定期收集统计信息,创建另一个执行核对清单。
    ......Oracle 10g Statistic数据统计----------------------------------------------------------------------------
    Blog: http://blog.csdn.net/tianlesoftware
    网上资源: http://tianlesoftware.download.csdn.net
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
    QQ 群:62697716