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. ThreadLocal原理及用法详解

    背景 一直以来对ThreadLocal用法模棱两可,不知道怎么用今天好好研究了下给大家分享下. 1.讲解ThreadLocal之前先回顾下什么是取模.x^y.弱引用. 1. 取模运算实际上是计算两数相 ...

  2. idea 内测设置

    找到安装目录/bin/idea64.exe.vmoptions文件 下面是默认配置 -Xms128m -Xmx750m -XX:ReservedCodeCacheSize=240m -XX:+UseC ...

  3. 15年用canvas画的

    请恕我当年的工作太轻松,用canvas手打了一个图,技术含量并没有什么,现在看看,甚是怀念_(¦3」∠)_ <!DOCTYPE html> <html> <head&g ...

  4. Unity通过指定摄像机截屏

    简介 介于照抄网上之前的截图教程,然后在实际应用过程中出现了一些小小的问题,修正了一下下,特此分享一下 PS:代码在后面 原理 原理很简单,就是将一个相机的内容渲染到一个贴图上,然后将贴图保存为图片 ...

  5. Unity学习-元素类型(三)

    在看下面操作时,先记住三句话 1.游戏对象 是由 组件 组成的:衣服 2.材质(Material):就是衣服的设计方案 3.纹理(Texture):做衣服的布料 从GameObject到Cube 第一 ...

  6. Java系列学习(九)-多态

    1.final关键字 (1)最终的意思, 可以修饰类,方法,变量 (2)特点: A:它修饰的类,不能被继承 B:它修饰的方法,不能被重写(覆盖) C:它修饰的变量,这个变量其实是一个常量 [扩展] ① ...

  7. HTML TabIndex属性

    TabIndex作用: tabindex:全局属性.指示其元素是否可以聚焦(获得焦点),以及它是否/在何处参与顺序键盘导航(因通常使用tab键操作,顾因此得名). 当使用tab键在网页控件中进行导航时 ...

  8. Leetcode0523--Continuous Subarray Sum 连续和倍数

    [转载请注明]https://www.cnblogs.com/igoslly/p/9341666.html class Solution { public: bool checkSubarraySum ...

  9. css图片特效

    网站图片往往有很多显示效果,使用css是实现图片特效的比较简便的方式.下面记录一段css鼠标指向的多重特效: <!DOCTYPE html><html lang="en&q ...

  10. 【技术累积】【点】【java】【30】代理模式

    基础 代理模式是Java常见的设计模式之一.所谓代理模式是指客户端并不直接调用实际的对象,而是通过调用代理,来间接的调用实际的对象. 什么是代理 参考现实生活中的代理 比如某个品牌的某个省的代理商,作 ...