where 后条件匹配是从前向后还是从后向前?
where 后条件匹配是从前向后还是从后向前?
假设有where 条件A and 条件B or 条件C进行查询,
数据库执行此查询时是A,B,C的筛选顺序应该是怎么样的呢?
------解决方案--------------------基本顺序是从后向前
------解决方案--------------------从最后一个开始从右向左逐个匹配
------解决方案--------------------理论上是从后往前
但是执行计划不见得是,oracle选择最优的执行计划
------解决方案--------------------做语法正确性检查时,是从后往前,但执行时,会按照RBO分析出的最优方案进行
------解决方案--------------------一般来说是从后往前,从右到左
所以一般都会把过滤最多数据的条件放在最后面
------解决方案--------------------不一定的,要看优化器的类型。如果是RBO的话就是从后往前,如果是CBO的话就按照分析出的最优方案进行。
------解决方案--------------------10g已经不区分前后顺序了