在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
相关推荐
谓词执行是在控制流存在的条件下可以有效挖掘指令级并行性的硬件机制,而在分簇结构上实现谓词机制,可以提高分簇结构上条件的执行效率。针对分簇结构展开谓词体系结构的研究,提出了分簇结构部分谓词的高效实现方法...
加深对归结原理进行定理证明过程的理解,掌握基于谓词逻辑的归结过程中子句变换过程、替换与合一算法即归结策略等重要环节,进一步了解实 现机器自动定理证明的步骤。 采用C++
谓词逻辑离散数学
本篇文章要介绍的是–外连接查询中的谓词下推规则,这相比内连接中的规则要复杂一些,不过使用简单的表格来进行分析也是可以分析清楚的。先上表: 我们以左外 连 接查询为例,先总结规矩如下: 接下来对这个表格中...
一阶谓词逻辑下的Horn 逻辑是人工智能程序语言Prolog 的理论基础,利用Prolog 在计算机 上可实现机械化,从而使自动化求解问题和定理证明具备可行性。
人工智能课件,关于谓词逻辑与归结原理,在学习了离散数学的基础上,进一步深入的学习谓词逻辑,掌握人工智能的初步知识
人工智能谓词逻辑归结问题的推理系统是很好的学习资料 ,可以帮助广大学子进一步学习人工智能的相关知识。
谓词逻辑推理,人工智能的基本理论,为人工智能系统的开发奠定了一定的理论基础
用于人工智能的学习,内容全面,人工智能 谓词逻辑
离散数学 谓词逻辑 PPT 基础 有用 好好学习
对命题逻辑和谓词逻辑的核心归纳可以做到一目了然
研究了中文名词性谓词的语义角色标注(semantic role labeling,简称SRL).在使用传统动词性谓词SRL相关特征的基础上,进一步提出了名词性谓词SRL相关的特征集.此外,探索了中文动词性谓词sRL对中文名词性谓词SRL的...
一阶谓词逻辑可以借助关联矩阵进行有效推理。为了提高关联矩阵的构造效率,从而提高一阶谓词逻辑推理的效率,提出一种由一阶谓词公式构造对应关联矩阵的递归方法。该方法利用二叉树的递归性质,对任意一个一阶谓词...
人工智能的实验题目。输入一组合适公式,以及一个目标子句,输出归结树。 我奋斗了几乎5天总算弄出来了,放过bin出来show一下^_^。 至于代码,想要的可以联系我。 这里给出一个测试用例吧: ;假设:所有不贫穷且...
基于谓词索引的大数据压缩
东北大学 离散数学课件 谓词逻辑 保证很详细哦
离散数学第二章谓词逻辑,非常好的资源,欢迎下载
命题逻辑与谓词逻辑PPT课件.pptx
博文链接:https://hongan.iteye.com/blog/224129
离散数学 谓词逻辑 习题课PPT课件.pptx