【DB笔试面试621】在Oracle中,举例说明“DISTINCT配置(Distinct Placement,DP)”查询转换。
- 2019 年 10 月 10 日
- 筆記
题目部分
在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程序员面试笔试宝典》,作者:李华荣。