假如表A有索引(a, b, c)
然后现在查询SQL是
select *
  from A, B
where b = xxx
    and a = xxx
    and d = xxx
    and c = xxx请问这种情况下生效的索引依然是(a, b, c)三列么?

解决方案 »

  1.   

    如果情况合适,可以使用,然而还是没get到你问的重点在哪里?生效的意思是到底哪几列是access谓词,哪几列是filter谓词的意思吗?
      

  2.   

    主要是想知道where自下而上解析,如果顺序乱了会不会自动优化
      

  3.   

    主要是想知道where自下而上解析,如果顺序乱了会不会自动优化走什么索引,和你where条件里用什么顺序来引用这些条件字段,毫无关系。
      

  4.   

    主要是想知道where自下而上解析,如果顺序乱了会不会自动优化正常情况优化器是自动计算的,除非你的版本太老了,比如8I等之前的纯粹RBO基于规则的
      

  5.   

    CBO已经是比较智能的了,不需要你来安排过滤条件的顺序