热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【DB笔试面试619】在Oracle中,举例说明“连接因式分解(Joinfactorization,JF)”查询转换。...

♣题目部分在Oracle中,举例说明“连接因式分解(Joinfactorization,JF)”查询转换。   ♣答案部分 1LHR@orclasm  SELECT  *+FUL

640?wx_fmt=gif

♣题目 部分

在Oracle中,举例说明“连接因式分解(Join factorization,JF)”查询转换。


     
♣答案部分



 1LHR@orclasm > SELECT  /*+FULL(A) FULL(B)*/  A.*,B.DNAME FROM SCOTT.EMP A,SCOTT.DEPT B WHERE A.DEPTNO=B.DEPTNO AND A.EMPNO=6
 2  2  UNION ALL
 3  3  SELECT  /*+FULL(A) FULL(B)*/  A.*,B.DNAME FROM SCOTT.EMP A,SCOTT.DEPT B WHERE A.DEPTNO=B.DEPTNO AND A.EMPNO=7;
 4
 5no rows selected
 6
 7
 8Execution Plan
 9----------------------------------------------------------
10Plan hash value: 1245103347
11
12-------------------------------------------------------------------------------------------
13| Id  | Operation            | Name               | Rows  | Bytes | Cost (%CPU)| Time     |
14-------------------------------------------------------------------------------------------
15|   0 | SELECT STATEMENT     |                    |     2 |   244 |     8  (13)| 00:00:01 |
16|*  1 |  HASH JOIN           |                    |     2 |   244 |     8  (13)| 00:00:01 |
17|   2 |   VIEW               | VW_JF_SET$623BBB07 |     2 |   200 |     4   (0)| 00:00:01 |
18|   3 |    UNION-ALL         |                    |       |       |            |          |
19|*  4 |     TABLE ACCESS FULL| EMP                |     1 |    87 |     2   (0)| 00:00:01 |
20|*  5 |     TABLE ACCESS FULL| EMP                |     1 |    87 |     2   (0)| 00:00:01 |
21|   6 |   TABLE ACCESS FULL  | DEPT               |     4 |    88 |     3   (0)| 00:00:01 |
22-------------------------------------------------------------------------------------------
23
24Predicate Information (identified by operation id):
25---------------------------------------------------
26
27   1 - access("ITEM_1"="B"."DEPTNO")
28   4 - filter("A"."EMPNO"=6)
29   5 - filter("A"."EMPNO"=7)
30
31Note
32-----
33   - dynamic sampling used for this statement (level=2)
34
35
36Statistics
37----------------------------------------------------------
38         99  recursive calls
39          7  db block gets
40         32  consistent gets
41          0  physical reads
42       4536  redo size
43        866  bytes sent via SQL*Net to client
44        509  bytes received via SQL*Net from client
45          1  SQL*Net roundtrips to/from client
46          0  sorts (memory)
47          0  sorts (disk)
48          0  rows processed
49
50LHR@orclasm > ALTER SESSION SET "_OPTIMIZER_JOIN_FACTORIZATION"=FALSE; 
51
52Session altered.
53
54LHR@orclasm > SELECT  /*+FULL(A) FULL(B)*/  A.*,B.DNAME FROM SCOTT.EMP A,SCOTT.DEPT B WHERE A.DEPTNO=B.DEPTNO AND A.EMPNO=6
55  2  UNION ALL
56  3  SELECT  /*+FULL(A) FULL(B)*/  A.*,B.DNAME FROM SCOTT.EMP A,SCOTT.DEPT B WHERE A.DEPTNO=B.DEPTNO AND A.EMPNO=7;
57
58no rows selected
59
60
61Execution Plan
62----------------------------------------------------------
63Plan hash value: 2703228680
64
65----------------------------------------------------------------------------
66| Id  | Operation           | Name | Rows  | Bytes | Cost (%CPU)| Time     |
67----------------------------------------------------------------------------
68|   0 | SELECT STATEMENT    |      |     2 |   218 |     8  (50)| 00:00:01 |
69|   1 |  UNION-ALL          |      |       |       |            |          |
70|   2 |   NESTED LOOPS      |      |     1 |   109 |     4   (0)| 00:00:01 |
71|*  3 |    TABLE ACCESS FULL| EMP  |     1 |    87 |     2   (0)| 00:00:01 |
72|*  4 |    TABLE ACCESS FULL| DEPT |    82 |  1804 |     2   (0)| 00:00:01 |
73|   5 |   NESTED LOOPS      |      |     1 |   109 |     4   (0)| 00:00:01 |
74|*  6 |    TABLE ACCESS FULL| EMP  |     1 |    87 |     2   (0)| 00:00:01 |
75|*  7 |    TABLE ACCESS FULL| DEPT |    82 |  1804 |     2   (0)| 00:00:01 |
76----------------------------------------------------------------------------
77
78Predicate Information (identified by operation id):
79---------------------------------------------------
80
81   3 - filter("A"."EMPNO"=6)
82   4 - filter("A"."DEPTNO"="B"."DEPTNO")
83   6 - filter("A"."EMPNO"=7)
84   7 - filter("A"."DEPTNO"="B"."DEPTNO")
85
86
87Statistics
88----------------------------------------------------------
89         93  recursive calls
90          7  db block gets
91         14  consistent gets
92          0  physical reads
93       4536  redo size
94        866  bytes sent via SQL*Net to client
95        509  bytes received via SQL*Net from client
96          1  SQL*Net roundtrips to/from client
97          0  sorts (memory)
98          0  sorts (disk)
99          0  rows processed





推荐阅读
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • 本文介绍了在MySQL8.0中如何查看性能并解析SQL执行顺序。首先介绍了查询性能工具的开启方法,然后详细解析了SQL执行顺序中的每个步骤,包括from、on、join、where、group by、having、select distinct、union、order by和limit。同时还介绍了虚拟表的概念和生成过程。通过本文的解析,读者可以更好地理解MySQL8.0中的性能查看和SQL执行顺序。 ... [详细]
  • 配置IPv4静态路由实现企业网内不同网段用户互访
    本文介绍了通过配置IPv4静态路由实现企业网内不同网段用户互访的方法。首先需要配置接口的链路层协议参数和IP地址,使相邻节点网络层可达。然后按照静态路由组网图的操作步骤,配置静态路由。这样任意两台主机之间都能够互通。 ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • 本文介绍了在SQL中查询分组后每组行数的统计方法。通过使用count()函数和GROUP BY子句可以统计每组的行数,但是如何统计所有组的行数呢?本文提供了一种实现方法,并给出了相应的SQL查询语句。 ... [详细]
  • 本文介绍了为什么要使用多进程处理TCP服务端,多进程的好处包括可靠性高和处理大量数据时速度快。然而,多进程不能共享进程空间,因此有一些变量不能共享。文章还提供了使用多进程实现TCP服务端的代码,并对代码进行了详细注释。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
author-avatar
小花姐姐
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有