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

  • 相关阅读:
    .net core webapi 前后端开发分离后的配置和部署
    403
    Visual Studio提示“无法启动IIS Express Web服务器”的解决方法
    一件能让人没脸见人的事
    过程 sp_addextendedproperty, 对象无效。不允许有扩展属性,或对象不存在。
    处理程序“ExtensionlessUrlHandler-Integrated-4.0”在其模块列表中有一个错误模块“ManagedPipelineHandler”
    阿里ECS配置MSSQL远程连接的坑
    .Net Webapi SignalR与微信小程序的交互
    Entity Framework 异常: 'OFFSET' 附近有语法错误。 在 FETCH 语句中选项 NEXT 的用法无效。
    postgresql 表继承
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13352078.html
Copyright © 2011-2022 走看看