日期:2014-05-17  浏览次数:20812 次

where 后条件匹配是从前向后还是从后向前?
where   后条件匹配是从前向后还是从后向前?
假设有where   条件A   and     条件B   or   条件C进行查询,
数据库执行此查询时是A,B,C的筛选顺序应该是怎么样的呢?

------解决方案--------------------
基本顺序是从后向前
------解决方案--------------------
从最后一个开始从右向左逐个匹配
------解决方案--------------------
理论上是从后往前

但是执行计划不见得是,oracle选择最优的执行计划
------解决方案--------------------
做语法正确性检查时,是从后往前,但执行时,会按照RBO分析出的最优方案进行
------解决方案--------------------
一般来说是从后往前,从右到左
所以一般都会把过滤最多数据的条件放在最后面
------解决方案--------------------
不一定的,要看优化器的类型。如果是RBO的话就是从后往前,如果是CBO的话就按照分析出的最优方案进行。
------解决方案--------------------
10g已经不区分前后顺序了