oracle 谓词及相关的优化
什么是谓词,谓词用来做什么,谓词相关的优化
分类
- access 谓词多用于使用索引访问场景,影响数据的访问路径。
- filter谓词多用于无法使用索引访问场景,filter表示谓词条件的值并不会影响数据访问路径,只起到过滤的作用没有驱动作用。不物理读一个块然后就对里面的记录做过滤,而是一次物理读取多个块后逻辑读并做过滤。
优化:
过滤谓词推入(VIEW PUSHED PREDICATE):
把库表中判断的条件推入进视图中进行判断。后续不再对库表进行筛选。
连接谓词推入(Join Predicate Pushdown)
谓词越界:
即如果对目标列指定的WHERE查询条件不在该列的最大值和最小值之间,CBO就无法判断出针对该列的查询条件的可选择率,所以只能用一个估算值来作为针对该目标列的查询条件的可选择率。如果这个估算的可选择率与实际情况严重不符的话,那么就有可能导致CBO评估出来的Cardinality出现严重偏差,进而使得CBO选错执行计划。
每天进步一点点,多思考,多总结
版权声明:本文为CNblog博主「zaituzhong」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。