当前位置:  数据库>oracle

探索执行计划中filter的原理

    来源: 互联网  发布时间:2017-05-28

    本文导语: 之前写过一篇文章,,开头是这么写的:  filter这个词总让人很费解,它下一级可以挂 一个子节点,二个子节点,三个子节点...。 挂一个子节点意思过滤,如对全表进行扫描后,按照条件过滤,丢弃不满足条件的数据。 挂二个...

之前写过一篇文章,,开头是这么写的: 

filter这个词总让人很费解,它下一级可以挂 一个子节点,二个子节点,三个子节点...。

挂一个子节点意思过滤,如对全表进行扫描后,按照条件过滤,丢弃不满足条件的数据。

挂二个子节点类似是nest loop。

挂三个子节点类似1和2做nest loop,结果集再与3做nest loop(这个是我推测的)。

为了证明当时的观点,我们下面来做个试验:
filter下挂一个节点:

SQL> select * from emp e where e.hiredate > sysdate - 10000 and e.hiredate < sysdate;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
7788 SCOTT ANALYST 7566 19-4月 -87 3000 20
7876 ADAMS CLERK 7788 23-5月 -87 1100 20
SQL> alter session set statistics_level=all;
会话已更改。
SQL> select * from table(dbms_xplan.display_cursor(null,null,'allstats last'));
PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------
SQL_ID 982y5g2z9sn6f, child number 0
-------------------------------------
select * from emp e where e.hiredate > sysdate - 10000 and e.hiredate sysdate - 10000 and e.hiredate < sysdate - 10000;
未选定行
SQL> select * from table(dbms_xplan.display_cursor(null,null,'allstats last'));
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------
SQL_ID 0pywmdg63gf0m, child number 0
-------------------------------------
select * from emp e where e.hiredate > sysdate - 10000 and e.hiredate
< sysdate - 10000
Plan hash value: 3896240783
---------------------------------------------------------------------------
| Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time |
---------------------------------------------------------------------------
|* 1 | FILTER | | | | 0 |00:00:00.01 |
|* 2 | TABLE ACCESS FULL| EMP | | 1 | 0 |00:00:00.01 |
---------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter(SYSDATE@!-10000SYSDATE@!-10000 AND
"E"."HIREDATE"


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 生命游戏探索 Golly
  • 每个人都能探索太阳 JHelioviewer
  • 关于<Java 2 完全探索>的三个问题
  • 各位大虾请问:有本<java完全探索>的书怎么样
  • 最近探索JBOSS+TOMCAT,但发现2.4.3版本的没有帮助@!!!
  • 能亲身投入最先进系统的开发和最先进技术的探索,将是您一生的骄傲,您愿加入我们吗?
  • 探索linux的道路上有点迷失了,希望大家给小弟提点建议,谢谢啦~
  • Linux 编译原来内核失败原因探索
  • 大家评论一下这两本书:《java入门经典》、《java完全探索》好吗?我正在看《核心技术卷I》,怎么觉得写的很零碎呀??请看过这些数的兄弟多多指点一下,小弟多谢了!!? //bow bow
  • PHP内核探索:变量概述
  • 正则表达式不区分大小写以及解决思路的探索 .
  • 菜鸟的提问:为什么很多人都推荐Debian发行版?大伙觉的那个发行版更适合深入探索Linux
  • Eclipse中自动重构实现探索
  • Oracle9i 动态SGA,PGA特性探索
  • PHP内核探索:变量存储与类型使用说明
  • 正则应用之 逆序环视探索 .
  • 探索ORACLE之ASM概念(完整版)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,