This is tested in 10gR2.

  1. SQL> select * from v$version;
  2.  
  3. BANNER
  4. ------------------------------------------------
  5. Oracle Database 10g Enterprise Edition Release 1
  6. 0.2.0.5.0 - 64bi
  7.  
  8. PL/SQL Release 10.2.0.5.0 - Production
  9. CORE 10.2.0.5.0 Production
  10. TNS for Solaris: Version 10.2.0.5.0 - Production
  11. NLSRTL Version 10.2.0.5.0 - Production

  

First, we create a view.

  1. SQL> create view v_dept as select deptno,dname from dept;
  2.  
  3. View created.

  

Then check SQL

  1. SQL> explain plan for select e.ename,d.dname from emp2 e, v_dept d where e.deptno=d.deptno;
  2.  
  3. Explained.
  4.  
  5. SQL> set linesize 180
  6. SQL> select * from table(dbms_xplan.display());
  7.  
  8. PLAN_TABLE_OUTPUT
  9. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  10. Plan hash value: 827386235
  11.  
  12. ----------------------------------------------------------------------------------------
  13. | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
  14. ----------------------------------------------------------------------------------------
  15. | 0 | SELECT STATEMENT | | 14 | 308 | 6 (17)| 00:00:01 |
  16. | 1 | MERGE JOIN | | 14 | 308 | 6 (17)| 00:00:01 |
  17. | 2 | TABLE ACCESS BY INDEX ROWID| DEPT | 4 | 52 | 2 (0)| 00:00:01 |
  18. | 3 | INDEX FULL SCAN | PK_DEPT | 4 | | 1 (0)| 00:00:01 |
  19. |* 4 | SORT JOIN | | 14 | 126 | 4 (25)| 00:00:01 |
  20. | 5 | TABLE ACCESS FULL | EMP2 | 14 | 126 | 3 (0)| 00:00:01 |
  21.  
  22. PLAN_TABLE_OUTPUT
  23. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  24. ----------------------------------------------------------------------------------------
  25.  
  26. Predicate Information (identified by operation id):
  27. ---------------------------------------------------
  28.  
  29. 4 - access("E"."DEPTNO"="DEPTNO")
  30. filter("E"."DEPTNO"="DEPTNO")
  31.  
  32. 18 rows selected.

  

use no_merge

  1. SQL> explain plan for select /*+ no_merge(d) */ e.ename,d.dname from emp2 e, v_dept d where e.deptno=d.deptno;
  2.  
  3. Explained.
  4.  
  5. SQL> select * from table(dbms_xplan.display());
  6.  
  7. PLAN_TABLE_OUTPUT
  8. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  9. Plan hash value: 2242990105
  10.  
  11. ------------------------------------------------------------------------------
  12. | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
  13. ------------------------------------------------------------------------------
  14. | 0 | SELECT STATEMENT | | 14 | 434 | 7 (15)| 00:00:01 |
  15. |* 1 | HASH JOIN | | 14 | 434 | 7 (15)| 00:00:01 |
  16. | 2 | VIEW | V_DEPT | 4 | 88 | 3 (0)| 00:00:01 |
  17. | 3 | TABLE ACCESS FULL| DEPT | 4 | 52 | 3 (0)| 00:00:01 |
  18. | 4 | TABLE ACCESS FULL | EMP2 | 14 | 126 | 3 (0)| 00:00:01 |
  19. ------------------------------------------------------------------------------
  20.  
  21. PLAN_TABLE_OUTPUT
  22. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  23.  
  24. Predicate Information (identified by operation id):
  25. ---------------------------------------------------
  26.  
  27. 1 - access("E"."DEPTNO"="D"."DEPTNO")
  28.  
  29. 16 rows selected.
  30.  
  31. SQL>

  

no_merge hint的更多相关文章

  1. [转]Oracle中Hint深入理解

    原文地址:http://czmmiao.iteye.com/blog/1478465 Hint概述 基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担.但有时它也聪明 ...

  2. 品味性能之道<十>:Oracle Hint

    Hint 是Oracle 提供的一种SQL语法,它允许用户在SQL语句中插入相关的语法,从而影响SQL的执行方式. 因为Hint的特殊作用,所以对于开发人员不应该在代码中使用它,Hint 更像是Ora ...

  3. Oracle中Hint深入理解(原创)

    http://czmmiao.iteye.com/blog/1478465 Hint概述  基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担.但有时它也聪明反被聪明 ...

  4. Oracle中Hint深入理解

    Hint概述 基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担.但有时它也聪明反被聪明误,选择了很差的执行计划,使某个语句的执行变得奇慢无比. 此时就需要DBA进行 ...

  5. oracle中hint 详解

    Hint概述 基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担.但有时它也聪明反被聪明误,选择了很差的执行计划,使某个语句的执行变得奇慢无比. 此时就需要DBA进行 ...

  6. Oracle提示大全

    Hint概述 基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担.但有时它也聪明反被聪明误,选择了很差的执行计划,使某个语句的执行变得奇慢无比. 此时就需要DBA进行 ...

  7. 视图合并、hash join连接列数据分布不均匀引发的惨案

    表大小 SQL> select count(*) from agent.TB_AGENT_INFO; COUNT(*) ---------- 1751 SQL> select count( ...

  8. oracle查询转换_view merge

    oracle对于子查询的支持做的很好,oracle optimizer会对inline view进行query transfomation,即视图合并,不过也经常带来意想不到的问题.下面是一个inli ...

  9. CBO学习笔记(转)

    Query Transformation 在继续研究SQL的其他操作(比如Join)对CBO的影响之前,我们来讨论一下Oracle优化器的Query Transformation特性.我们都习惯于根据 ...

随机推荐

  1. Linux 下文本查找技巧你掌握了吗?

    前言 之前介绍过很多linux下查找相关的命令,例如<Linux中的文件查找技巧>,<find命令高级用法>,<如何查看linux中文件打开情况-lsof命令>等等 ...

  2. nginx + php-fpm 运行原理

    一.关于nginx 1.1 简单认知 我们都知道nginx 是web服务器. 也知道 用户访问时通过ip和端口访问 nginx. 那么nginx 是如何 通过php 获取数据并返回数据的呢? 1.2 ...

  3. vb.net实现textbox控件输入指定位数小数方法实现。

    Private Sub textbox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPres ...

  4. Java继承体系中this的表示关系

    在继承关系下,父类中的this关键字并不总是表示父类中的变量和方法.this关键字的四种用法如前文所述,列举如下. 1) this(paras…); 访问其他的构造方法 2) this.xxx; 访问 ...

  5. Manacher 学习笔记

    \(\\\) \(Manacher\) 一种常用的字符串算法,用于处理一些回文字符相关的问题. 回文串:从前向后和从后向前输出一致. 回文中心:以这里开始,每次向外左右各扩展一个字符得到的回文串的中心 ...

  6. jQuery——属相操作

    属性获取:attr(属性名), 属性设置:attr(属性名,具体值) 移除属性:removeAttr(属性名) 特殊情况:prop(属性名).prop(属性名,具体值):表单中状态属性checked. ...

  7. easyui 使用笔记

    http://www.easyui.info/archives/1435.html datagrid 服务端分页 服务端分页,高效,快捷!强力推荐! easyui的datagrid服务端分页,通过设置 ...

  8. vim之<F12> 一键生成tags的一些小优化

    在之前我写的<<vim之tags>>中最后提到将vim和tags成和更新的全部集中到一个<f12>键上来. 这在实践中证明是相当方便的, 不过依然村庄几个问题如下: ...

  9. 【VHDL】组合逻辑电路和时序逻辑电路的区别

    简单的说,组合电路,没有时钟:时序电路,有时钟. ↓ 也就是说,组合逻辑电路没有记忆功能,而时序电路具有记忆功能. ↓ 在VHDL语言中,不完整条件语句对他们二者的影响分别是什么?组合逻辑中可能生成锁 ...

  10. ELK基本统计图表

    ELK基本统计图表,现在基本在用自带的功能,复杂的功能还需要去摸索了