在Oracle中,谓词一般就是指where后面的那些过滤条件。
而在执行计划中,我们有时候会看到一个信息:
VIEW PUSHED PREDICATE
就是传说中的谓词推入。
谓词推入是什么意思?
就是指视图(VIEW)在做关联之前,会将外面一层的数据放到视图里面先做过滤。
一般是将外层关联的索引,放到视图内的表的索引上面来做。
在CSDN落落的Oracle优化Blog里面,有这样一个优化案例:
http://blog.csdn.net/robinson1988/article/details/6792078
其中说到:
谓词推入是双刃剑,但是我看到的更多的案例是谓词推入反而引发性能问题,问题的原因在于谓词推入后CBO计算基数就 大大减小了。
也就是说,在谓词推入后,引起CBO计算基数减少。
这是因为使用谓词推入后,索引会进行nested loop,而不会使用hash join在某些条件下,就会降低速度了。
SELECT * FROM table1, t1 ( SELECT /*+ NO_PUSH_PRED */ * FROM table2 t2 WHERE t2.col1 = :value1 ) t2o WHERE t2o.col2 = t1.col2
这里,会将table1和t1视图进行hash join,从而返回结果
SELECT * FROM table1, t1 ( SELECT /*+ PUSH_PRED */ * FROM table2 t2 WHERE t2.col1 = :value1 ) t2o WHERE t2o.col2 = t1.col2
这里,将会使用NESTED LOOPS 当索引(t2.col1, t2.col2) 被定义的情况下。
当视图中返回 col2 索引字段的时候,会加速连接过程。
但是,如果 col2 纯粹是展示字段用,而逻辑上不使用它作为过滤,则会slow down整个连接过程。
这个就是基于谓词推入的oracle
Refer to:http://stackoverflow.com/questions/1044584/how-could-predicate-pushing-on-an-inline-view-slow-down-a-query
相关推荐
在Spark SQL中,谓词下推(Predicate Pushdown)是一种优化技术,用于在执行查询时提前过滤数据,减少不必要的计算量。在连接查询中,谓词下推尤其关键,因为它可以显著提高查询效率。本文主要探讨了外连接查询,...
### 人工智能与谓词逻辑知识点解析 #### 一、引言 在计算机科学与人工智能领域,逻辑推理是一种重要的工具,用于模拟人类的推理过程。其中,**谓词逻辑**是逻辑学的一个分支,尤其适用于处理复杂的知识表示和推理...
在IT领域,尤其是在人工智能的研究中,归结原理(Resolution Principle)是证明逻辑定理的一种重要方法,它在基于谓词逻辑的自动定理证明中扮演着核心角色。本实验旨在帮助我们深入理解归结原理及其在定理证明过程中...
"一阶谓词逻辑和知识绑定" 一阶谓词逻辑是人工智能较早期的方法之一,基于谓词逻辑的推理是通过对函数形式的命题进行逻辑推理运算并求解。谓词逻辑中,命题是由谓词文字(函数)、逻辑运算符和量词组成的。逻辑...
人工智能中的谓词逻辑归结是一种重要的推理方法,它在理解复杂知识表示、自动推理和解决数学及逻辑问题中发挥着核心作用。谓词逻辑归结是建立在逻辑基础之上的,特别是弗雷格的算术基础和希尔伯特的形式主义之上。这...
谓词逻辑离散数学
在SQL查询中,EXISTS谓词是一个非常关键的子句,用于判断子查询是否返回至少一行数据。这个知识点对于数据库查询优化和复杂条件筛选至关重要。本文将深入探讨EXISTS谓词的工作原理、用法以及其与IN和JOIN操作符的...
- **定义**:当谓词的括号内填入具体的客体时,就形成了一个命题。在这个过程中,谓词就像是一个函数,根据输入的不同客体生成不同的命题。因此,我们称谓词为命题函数。 - **例子**: - S(a):表示“小张是大学生...
谓词逻辑是逻辑学的一个分支,它扩展了命题逻辑的能力,允许处理含有变量的陈述,这些变量可以代表不确定或未指定的对象。命题逻辑只能处理不包含变量的简单命题,而谓词逻辑则能够精确地表达和推理关于这些变量的...
人工智能课件,关于谓词逻辑与归结原理,在学习了离散数学的基础上,进一步深入的学习谓词逻辑,掌握人工智能的初步知识
"离散数学谓词逻辑习题课PPT课件" 本资源是一个关于离散数学谓词逻辑的习题课PPT课件,共32页,涵盖了谓词逻辑的基础知识点和习题。 在第一页中,引入了命题符号化的概念,并提供了一些基本的谓词逻辑公式,例如∀...
离散数学谓词演算推理理论PPT学习教案 离散数学谓词演算推理理论是指在数学逻辑中,使用谓词演算来描述和推理的方法。谓词演算推理理论是一种形式系统,用于描述和推理具有量词和谓词的命题。 在谓词演算推理理论...
### 逻辑谓词与Prolog #### 一、Prolog的逻辑理论基础 ##### (一)Horn逻辑 Horn逻辑是一阶谓词逻辑的一个子集,它在人工智能领域尤其重要,因为它是Prolog程序设计语言的理论基石。Horn逻辑主要通过Horn子句来...
"人工智能导论课件:第四章 谓词逻辑与归结原理" 在人工智能领域中,谓词逻辑和归结原理是两个非常重要的概念。谓词逻辑是一种形式语言,具有严密的理论体系,是一种常用的知识表示方法。它可以用来描述复杂的关系...
谓词逻辑推理,人工智能的基本理论,为人工智能系统的开发奠定了一定的理论基础
《命题逻辑和谓词逻辑》 在探讨命题逻辑与谓词逻辑之前,首先要理解逻辑的基础概念。逻辑,作为研究事物规律和思维规律的学科,是数理逻辑的主要研究对象。数理逻辑通过数学方法深入剖析逻辑的本质,它涉及到一系列...
命题逻辑与谓词逻辑PPT课件 本资源是关于命题逻辑和谓词逻辑的PPT课件,总共47页,覆盖了命题逻辑和谓词逻辑的基本概念、定义、公式和应用。 命题逻辑是研究具有真假意义的语句的逻辑系统。其中,原子命题是不能被...
人工智能课件:第三章 谓词逻辑与搜索原理 本资源主要概述了人工智能中谓词逻辑与搜索原理的知识点。谓词逻辑是逻辑学的一部分,研究的是在命题逻辑基础上,引入谓词和量词,来描述事物之间的关系和性质的逻辑系统...