oracle 谓词及相关的优化

什么是谓词,谓词用来做什么,谓词相关的优化

分类

  • access 谓词多用于使用索引访问场景,影响数据的访问路径。
  • filter谓词多用于无法使用索引访问场景,filter表示谓词条件的值并不会影响数据访问路径,只起到过滤的作用没有驱动作用。不物理读一个块然后就对里面的记录做过滤,而是一次物理读取多个块后逻辑读并做过滤。

优化:

过滤谓词推入(VIEW PUSHED PREDICATE):

        把库表中判断的条件推入进视图中进行判断。后续不再对库表进行筛选。

连接谓词推入(Join Predicate  Pushdown)

谓词越界:

   即如果对目标列指定的WHERE查询条件不在该列的最大值和最小值之间,CBO就无法判断出针对该列的查询条件的可选择率,所以只能用一个估算值来作为针对该目标列的查询条件的可选择率。如果这个估算的可选择率与实际情况严重不符的话,那么就有可能导致CBO评估出来的Cardinality出现严重偏差,进而使得CBO选错执行计划。

每天进步一点点,多思考,多总结 版权声明:本文为CNblog博主「zaituzhong」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文地址:https://www.cnblogs.com/tingxin/p/14639243.html