专栏首页小麦苗的DB宝专栏【DB笔试面试621】在Oracle中,举例说明“DISTINCT配置(Distinct Placement,DP)”查询转换。

【DB笔试面试621】在Oracle中,举例说明“DISTINCT配置(Distinct Placement,DP)”查询转换。

题目部分

在Oracle中,举例说明“DISTINCT配置(Distinct Placement,DP)”查询转换。

答案部分

LHR@orclasm > SELECT  /*+FULL(A) FULL(B)*/ DISTINCT  A.ENAME,B.DNAME FROM SCOTT.EMP A,SCOTT.DEPT B WHERE A.DEPTNO=B.DEPTNO ;

14 rows selected.


Execution Plan
----------------------------------------------------------
Plan hash value: 2962452962

----------------------------------------------------------------------------
| Id  | Operation           | Name | Rows  | Bytes | Cost (%CPU)| Time     |
----------------------------------------------------------------------------
|   0 | SELECT STATEMENT    |      |    14 |   588 |     8  (25)| 00:00:01 |
|   1 |  HASH UNIQUE        |      |    14 |   588 |     8  (25)| 00:00:01 |
|*  2 |   HASH JOIN         |      |    14 |   588 |     7  (15)| 00:00:01 |
|   3 |    TABLE ACCESS FULL| DEPT |     4 |    88 |     3   (0)| 00:00:01 |
|   4 |    TABLE ACCESS FULL| EMP  |    14 |   280 |     3   (0)| 00:00:01 |
----------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   2 - access("A"."DEPTNO"="B"."DEPTNO")

Note
-----
   - dynamic sampling used for this statement (level=2)


Statistics
----------------------------------------------------------
         46  recursive calls
          6  db block gets
         14  consistent gets
          0  physical reads
       2620  redo size
        870  bytes sent via SQL*Net to client
        520  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
         14  rows processed

LHR@orclasm > SELECT  /*+FULL(A) FULL(B) PLACE_DISTINCT*/ DISTINCT  A.ENAME,B.DNAME FROM SCOTT.EMP A,SCOTT.DEPT B WHERE A.DEPTNO=B.DEPTNO ;

14 rows selected.


Execution Plan
----------------------------------------------------------
Plan hash value: 3633957927

-----------------------------------------------------------------------------------------
| Id  | Operation             | Name            | Rows  | Bytes | Cost (%CPU)| Time     |
-----------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT      |                 |    14 |   588 |     9  (34)| 00:00:01 |
|   1 |  HASH UNIQUE          |                 |    14 |   588 |     9  (34)| 00:00:01 |
|*  2 |   HASH JOIN           |                 |    14 |   588 |     8  (25)| 00:00:01 |
|   3 |    TABLE ACCESS FULL  | DEPT            |     4 |    88 |     3   (0)| 00:00:01 |
|   4 |    VIEW               | VW_DTP_377C5901 |    14 |   280 |     4  (25)| 00:00:01 |
|   5 |     HASH UNIQUE       |                 |    14 |   280 |     4  (25)| 00:00:01 |
|   6 |      TABLE ACCESS FULL| EMP             |    14 |   280 |     3   (0)| 00:00:01 |
-----------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   2 - access("ITEM_1"="B"."DEPTNO")

Note
-----
   - dynamic sampling used for this statement (level=2)


Statistics
----------------------------------------------------------
         59  recursive calls
          5  db block gets
         48  consistent gets
          0  physical reads
       2552  redo size
        873  bytes sent via SQL*Net to client
        520  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
         14  rows processed

& 说明:

有关查询转换的更多内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2140618/

本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。

本文分享自微信公众号 - DB宝(xiaomaimiaolhr),作者:小麦苗best

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【DB笔试面试615】在Oracle中,和谓词相关的查询转换有哪些?

    小麦苗DBA宝典
  • 【DB笔试面试614】在Oracle中,和视图相关的查询转换有哪些?

    小麦苗DBA宝典
  • 【DB笔试面试590】在Oracle中,什么是反连接(Anti Join)?

    反连接(Anti Join)也是一种特殊的连接类型,通常用于从一个表中返回不在另一个数据源中的数据行。当做子查询展开时,Oracle经常会把那些外部WHERE条...

    小麦苗DBA宝典
  • 微信电脑版不断崩溃

    之前不知道为什么,突然发生微信不断崩溃的状况,更新微信没用尝试网上的各种方法都没用,不过索性最后解决了。想看解决方案的话看最后了,中间记录的是崩溃日志。

    @坤的
  • 用NBitcoin进行区块链开发(6):交易签名

    比特币交易的签名过程是所有环节中最复杂的步骤之一,下面两篇文章对这个过程有详细的描述。

    申龙斌
  • Linux内存管理 (22)内存检测技术(slub_debug/kmemleak/kasan)【转】

    转自:https://www.cnblogs.com/arnoldlu/p/8568090.html

    用户3033338
  • 【DB笔试面试615】在Oracle中,和谓词相关的查询转换有哪些?

    小麦苗DBA宝典
  • MySQL binlog event 详解

    我也是只菜鸡,blog写的不对或者不严谨的地方还请大伙指出来,我及时改正,免得误人子弟。

    二狗不要跑
  • ps命令常见实用用法

    在介绍实例之前,需要先了解一下ps命令输出各字段的含义,这样我们才能更好地理解所展示的信息。常见字段的基本含义如下:

    编程珠玑
  • 一步步利用Linux kernel漏洞<1a/4>

    上一篇(第一篇)介绍了很多关于Linux内核漏洞CVE-2017-11176一些背景知识,本篇再介绍一点基础知识,不然后面就完全看不懂了,之后再想办法触发利用它...

    jeff xie

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动