两表连接三:合并连接

简介: 一、概念 合并连接:MERGE JOIN,也叫排序合并连接,进行合并连接的时候,两个数据集都会被读出来,并按照连接条件的字段进行排序。当这些操作完成,两个工作区的内容就会被合并。

一、概念

合并连接:MERGE JOIN,也叫排序合并连接,进行合并连接的时候,两个数据集都会被读出来,并按照连接条件的字段进行排序。当这些操作完成,两个工作区的内容就会被合并。

 

二、特点

  • 每个子节点只会执行一次。
  • 每个输入数据集都必须按照连接条件的字段进行排序。
  • 由于这些排序操作,在返回结果集的第一条记录之前,两个输入数据集都必须被完全读出并排序。
  • 所有的连接类型都支持合并连接。
  • 合并连接并不是经常使用。原因是大部分情况下,合并连接的效率不如嵌套循环连接和哈希连接。无论如何,这种连接方法是必要的,因为只有他才支持所有类型的连接;

三、执行步骤

 

 

四、合并连接的测试

 

测试环境:

数据库版本:11.2.0.3

表:SCOTT.DEPT

表: SCOTT.EMP

 

select /*+ ordered use_merge(EMP) */*

FROM SCOTT.DEPT T1,SCOTT.EMP T2

WHERE T1.DEPTNO=T2.DEPTNO;

执行计划的解读如下:

1.表DEPT上面有主键索引PK_DEPT,所以通过这个索引去获取数据,读取数据的时候直接进行排序;

2.对表EMP记录通过一次全表扫描读出,然后进行SORT的排序;

3.两个数据集进行连接,结果记录返回;

4.根据执行的原理可以明白,合并连接的最大的局限是不能有效的利用索引来处理连接条件。索引只能作为排序操作之前的房屋路径去评估限制条件。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

本文作者:JOHN

ORACLE技术博客:ORACLE 猎人笔记               数据库技术群:367875324 (请备注ORACLE管理 )  

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

相关文章
|
数据采集 Java Python
优化数据的抓取规则:减少无效请求
本文详细介绍了一种高效抓取贝壳等二手房平台房价信息的方法,重点在于过滤无效链接和减少冗余请求。文章首先分析了目标数据和平台特点,然后提出了URL过滤、分页控制、动态设置User-Agent和Cookies、代理IP轮换及多线程优化等策略。最后,提供了一个结合代理IP技术的Python爬虫代码示例,展示了如何具体实现上述优化措施,从而显著提升数据抓取的稳定性和效率。
238 26
优化数据的抓取规则:减少无效请求
|
机器学习/深度学习 PyTorch TensorFlow
在深度学习中,数据增强是一种常用的技术,用于通过增加训练数据的多样性来提高模型的泛化能力。`albumentations`是一个强大的Python库,用于图像增强,支持多种图像变换操作,并且可以与深度学习框架(如PyTorch、TensorFlow等)无缝集成。
在深度学习中,数据增强是一种常用的技术,用于通过增加训练数据的多样性来提高模型的泛化能力。`albumentations`是一个强大的Python库,用于图像增强,支持多种图像变换操作,并且可以与深度学习框架(如PyTorch、TensorFlow等)无缝集成。
|
12月前
|
人工智能 搜索推荐 算法
人工智能在医疗诊断中的应用与前景
本文探讨了人工智能在医疗诊断中的最新进展、应用案例以及面临的挑战。通过分析AI在医学影像识别、电子病历分析和个性化治疗方案等领域的具体应用,揭示了其提高诊断准确性、缩短诊断时间的潜力。同时,讨论了数据隐私、算法偏见等伦理和法律问题,并提出了未来研究方向。
|
消息中间件
【RabbitMQ七】——RabbitMQ发布确认模式(Publisher Confirms)
【RabbitMQ七】——RabbitMQ发布确认模式(Publisher Confirms)
714 0
|
存储 传感器 数据管理
【软件设计师备考 专题 】面向对象数据库和分布式对象:理解新的数据管理概念
【软件设计师备考 专题 】面向对象数据库和分布式对象:理解新的数据管理概念
305 0
|
缓存 JSON Java
京东零售 / hotkey 热点key探测工具使用
京东零售 / hotkey 热点key探测工具使用
308 0
|
canal 缓存 关系型数据库
高并发场景下,6种方案,保证缓存和数据库的最终一致性!
在解决缓存一致性的过程中,有多种途径可以保证缓存的最终一致性,应该根据场景来设计合适的方案,读多写少的场景下,可以选择采用“Cache-Aside结合消费数据库日志做补偿”的方案,写多的场景下,可以选择采用“Write-Through结合分布式锁”的方案,写多的极端场景下,可以选择采用“Write-Behind”的方案。
2229 0
|
关系型数据库 MySQL Java
IDEA+Mysql调试常见异常解决办法_kaic
IDEA+Mysql调试常见异常解决办法_kaic
|
SQL 存储 Oracle
Oracle之3种表连接方式(排序合并连接、嵌套循环、哈希连接)
Oracle之3种表连接方式(排序合并连接、嵌套循环、哈希连接) 排序合并连接 1.2.4.2.1  排序合并连接 排序合并连接(Sort Merge Join)是一种两个表在做表连接时用排序操作(Sort)和合并操作(Merge)来得到连接结果集的表连接方法。
3594 0
|
JSON JavaScript 前端开发
JsonPath使用和示例
JsonPath使用和示例
292 1