zoukankan      html  css  js  c++  java
  • 谓词推入演示

    create or replace view v_emp as select emp.empno,emp.ename,emp.deptno from emp,dept
    where emp.deptno=dept.deptno;
    
    SQL> select * from t10;
    
    	ID NAME
    ---------- ----------
    	 1 a
    	 2 b
    	 3 c
          7902 d
          7900 e
          7844 f
    
    已选择6行。
    
    SQL> select * from v_emp;
    
         EMPNO ENAME	  DEPTNO
    ---------- ---------- ----------
          7369 SMITH	      20
          7499 ALLEN	      30
          7521 WARD 	      30
          7566 JONES	      20
          7654 MARTIN	      30
          7698 BLAKE	      30
          7782 CLARK	      10
          7788 SCOTT	      20
          7839 KING 	      10
          7844 TURNER	      30
          7876 ADAMS	      20
    
         EMPNO ENAME	  DEPTNO
    ---------- ---------- ----------
          7900 JAMES	      30
          7902 FORD 	      20
          7934 MILLER	      10
    
    已选择14行。
    
    SQL> select  /*+ use_nl(a b)  */ * from t10 a,v_emp b
    where a.id=b.empno(+)  2  ;
    
    已选择6行。
    
    
    执行计划
    ----------------------------------------------------------
    Plan hash value: 1825515217
    
    ---------------------------------------------------------------------------------------
    | Id  | Operation		     | Name   | Rows  | Bytes | Cost (%CPU)| Time     |
    ---------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT	     |	      |     6 |   228 |     9	(0)| 00:00:01 |
    |   1 |  NESTED LOOPS OUTER	     |	      |     6 |   228 |     9	(0)| 00:00:01 |
    |   2 |   TABLE ACCESS FULL	     | T10    |     6 |   150 |     3	(0)| 00:00:01 |
    |*  3 |   TABLE ACCESS BY INDEX ROWID| EMP    |     1 |    13 |     1	(0)| 00:00:01 |
    |*  4 |    INDEX UNIQUE SCAN	     | PK_EMP |     1 |       |     0	(0)| 00:00:01 |
    ---------------------------------------------------------------------------------------
    
    Predicate Information (identified by operation id):
    ---------------------------------------------------
    
       3 - filter("EMP"."DEPTNO"(+) IS NOT NULL)
       4 - access("A"."ID"="EMP"."EMPNO"(+))
    
    Note
    -----
       - dynamic sampling used for this statement (level=2)
    
    
    统计信息
    ----------------------------------------------------------
    	 11  recursive calls
    	  0  db block gets
    	 24  consistent gets
    	  0  physical reads
    	  0  redo size
    	837  bytes sent via SQL*Net to client
    	415  bytes received via SQL*Net from client
    	  2  SQL*Net roundtrips to/from client
    	  1  sorts (memory)
    	  0  sorts (disk)
    	  6  rows processed
    
    
    SQL> select  /*+ use_nl(a b) no_merge(b)*/ * from t10 a,v_emp b
    where a.id=b.empno(+)  2  ;
    
    已选择6行。
    
    
    执行计划
    ----------------------------------------------------------
    Plan hash value: 3375986511
    
    ----------------------------------------------------------------------------------------
    | Id  | Operation		      | Name   | Rows  | Bytes | Cost (%CPU)| Time     |
    ----------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT	      |        |     6 |   438 |     9	 (0)| 00:00:01 |
    |   1 |  NESTED LOOPS OUTER	      |        |     6 |   438 |     9	 (0)| 00:00:01 |
    |   2 |   TABLE ACCESS FULL	      | T10    |     6 |   228 |     3	 (0)| 00:00:01 |
    |   3 |   VIEW PUSHED PREDICATE       | V_EMP  |     1 |    35 |     1	 (0)| 00:00:01 |
    |*  4 |    TABLE ACCESS BY INDEX ROWID| EMP    |     1 |    13 |     1	 (0)| 00:00:01 |
    |*  5 |     INDEX UNIQUE SCAN	      | PK_EMP |     1 |       |     0	 (0)| 00:00:01 |
    ----------------------------------------------------------------------------------------
    
    Predicate Information (identified by operation id):
    ---------------------------------------------------
    
       4 - filter("EMP"."DEPTNO" IS NOT NULL)
       5 - access("EMP"."EMPNO"="A"."ID")
    
    Note
    -----
       - dynamic sampling used for this statement (level=2)
    
    
    统计信息
    ----------------------------------------------------------
    	 17  recursive calls
    	  0  db block gets
    	 40  consistent gets
    	  0  physical reads
    	  0  redo size
    	832  bytes sent via SQL*Net to client
    	415  bytes received via SQL*Net from client
    	  2  SQL*Net roundtrips to/from client
    	  1  sorts (memory)
    	  0  sorts (disk)
    	  6  rows processed
    
    可以看到谓词推入通过关联列推入.
    
    
    

  • 相关阅读:
    书单
    x&(x1)表达式的意义
    约瑟夫环,杀人游戏(静态循环链表实现)
    我的第一个动态规划程序(试图用递归求斐波拉契数)
    NYOJ 2题 括号配对问题
    为什么 C++不叫作++C? o(∩_∩)o
    文字常量区,字符串常量
    括号匹配(栈实现)
    Mybatis的逆向工程(generator)
    Mybatis学习一(介绍/举例/优化)
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13352078.html
Copyright © 2011-2022 走看看