什么是谓词,谓词用来做什么,谓词相关的优化
分类
- access 谓词多用于使用索引访问场景,影响数据的访问路径。
- filter谓词多用于无法使用索引访问场景,filter表示谓词条件的值并不会影响数据访问路径,只起到过滤的作用没有驱动作用。不物理读一个块然后就对里面的记录做过滤,而是一次物理读取多个块后逻辑读并做过滤。
优化:
过滤谓词推入(VIEW PUSHED PREDICATE):
把库表中判断的条件推入进视图中进行判断。后续不再对库表进行筛选。
连接谓词推入(Join Predicate Pushdown)
谓词越界:
即如果对目标列指定的WHERE查询条件不在该列的最大值和最小值之间,CBO就无法判断出针对该列的查询条件的可选择率,所以只能用一个估算值来作为针对该目标列的查询条件的可选择率。如果这个估算的可选择率与实际情况严重不符的话,那么就有可能导致CBO评估出来的Cardinality出现严重偏差,进而使得CBO选错执行计划。