NO_MERGE视图合并案例

原创 2013年12月02日 22:02:02
/*+NO_MERGE(TABLE)*/
  对于有可合并的视图不再合并.
  例如:
  SELECT /*+NO_MERGE(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_NO FROM BSEMPMS A (SELECT DPT_NO,AVG(SAL) AS AVG_SAL FROM BSEMPMS B GROUP BY DPT_NO) V WHERE A.DPT_NO=V.DPT_NO AND A.SAL>V.AVG_SAL;
Plan hash value: 1516306995
 
---------------------------------------------------------------------------------------------------------
| Id  | Operation                      | Name                   | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT               |                        |  1364 |   454K| 52803   (1)| 00:10:34 |
|*  1 |  VIEW                          |                        |  1364 |   454K| 52803   (1)| 00:10:34 |
|*  2 |   WINDOW SORT PUSHED RANK      |                        |  1364 |    98K| 52803   (1)| 00:10:34 |
|*  3 |    HASH JOIN                   |                        |  1364 |    98K| 52802   (1)| 00:10:34 |
|*  4 |     INDEX FAST FULL SCAN       | PK_FA_DOCANALYSTRELA   |  1364 | 15004 |   598   (3)| 00:00:08 |
|   5 |     TABLE ACCESS BY INDEX ROWID| DOC_RESEARCHREPORTCORE | 71696 |  4410K| 52204   (1)| 00:10:27 |
|*  6 |      INDEX RANGE SCAN          | IND_DOC_RSCHDR7        | 71696 |       |   288   (1)| 00:00:04 |
---------------------------------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   1 - filter("ROWN"=1)
   2 - filter(ROW_NUMBER() OVER ( PARTITION BY "FD"."ANALYSTID" ORDER BY
              INTERNAL_FUNCTION("DR"."DOCTIME") DESC )<=1)
   3 - access("FD"."DOCID"="DR"."OBJID")
   4 - filter("FD"."ANALYSTID"=115733 OR "FD"."ANALYSTID"=122765 OR "FD"."ANALYSTID"=127452 OR
              "FD"."ANALYSTID"=127458 OR "FD"."ANALYSTID"=127459 OR "FD"."ANALYSTID"=127614 OR
              "FD"."ANALYSTID"=128072 OR "FD"."ANALYSTID"=128175 OR "FD"."ANALYSTID"=128207 OR
              "FD"."ANALYSTID"=128358)
   6 - access("DR"."DOCTIME">SYSDATE@!-90)

MERGE 与NO_MERGE

19. /*+ MERGE(TABLE) */     能够对视图的各个查询进行相应的合并.     例如:     SELECT /*+ MERGE(V) */ A.EMP_NO,A.EMP_...
  • u010719917
  • u010719917
  • 2016年11月18日 08:28
  • 1296

Oracle中Hint深入理解

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

利用NO_MERGE解决数据字典视图访问低效

转自: 数据库的数据字典视图的访问一般都比较迅速,因为Oracle已经做了专门的优化工作,但是有些时候,几个数据字典进行关联的时候,CBO就没有那么智能了,有时候会给出一些效率很低的执行计划。 ...
  • huangzihao100
  • huangzihao100
  • 2012年09月26日 13:13
  • 706

merge no_merge

select /*+ merge(a) */ a.ct, b.dname from (select deptno, count(*) as ct from emp group by deptno)...
  • jgmydsai
  • jgmydsai
  • 2013年07月25日 13:35
  • 999

no_merge/merge vs no_unnest/unnest

I sometimes get confused about the difference between (no_)merge and(no_)unnest. I just do some te...
  • loryliu
  • loryliu
  • 2016年04月09日 15:49
  • 610

NO_MERGE视图合并案例

/*+NO_MERGE(TABLE)*/   对于有可合并的视图不再合并.   例如:   SELECT /*+NO_MERGE(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_N...
  • xiaoxing1521025
  • xiaoxing1521025
  • 2013年12月02日 22:02
  • 1001

Merge Into 语句代替Insert/Update在Oracle中的应用实战

动机:想在Oracle中用一条SQL语句直接进行Insert/Update的操作。说明:在进行SQL语句编写时,我们经常会遇到大量的同时进行Insert/Update的语句 ,也就是说当存在记录时,就...
  • yuzhic
  • yuzhic
  • 2007年11月21日 19:01
  • 37550

视图合并(View Merging)

在使用视图或嵌套视图的查询语句中,oracle 为了取得最优的执行计划会将这些视图进行合并,将视图中的表与外部查询的表进行连接。 --示例: SQL> select e.first_name, ...
  • aqszhuaihuai
  • aqszhuaihuai
  • 2012年07月29日 00:37
  • 6246

index_ffs, leading,merge,no_merge,no_unnest,use_hash

--------------------------------------------------------------------index_ffs-----------------------...
  • u010719917
  • u010719917
  • 2016年07月23日 09:51
  • 301

oracle merge 误区

1、如果在d1表中有一个字段有多个,并且在使用merge是使用该字段关联会产生ORA-30926的错误,如在上一节面我们使用相关联的字段是deptno,如果在d1中出现多行deptno的值一样就会报错...
  • ch7543658
  • ch7543658
  • 2014年11月04日 22:19
  • 1836
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:NO_MERGE视图合并案例
举报原因:
原因补充:

(最多只允许输入30个字)