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
    
    可以看到谓词推入通过关联列推入.
    
    
    

  • 相关阅读:
    MyBatis的Mapper接口以及Example的实例函数及详解
    数据存储
    广播
    java线程复习3(线程的中断)
    java线程复习2(获取和设置线程信息)
    java线程复习1(线程创建)
    最好的启动方式
    工厂模式
    欧几里得算法
    组合数打表
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13352078.html
Copyright © 2011-2022 走看看