Oracle SQL优化之多表连接

简介: Oracle SQL优化之多表连接

在多表联合查询的时候,如果我们查看它的执行计划, 就会发现里面有多表之间的连接方式 多表之间的连接有三种方式: Nested Loops,Hash Join 和 Sort Merge Join. 具体适用哪种类型的连接取决于: * 当前的优化器模式 (ALL_ROWS 和 RULE) * 取决于表大小 * 取决于连接列是否有索引 * 取决于连接列是否排序


1 hash join


使用情况:Hash join在两个表的数据量差别很大的时候.(小表一般会丢在内存中)


542120c89c7f48b0a3a87abcbd1505d5.png

c012a0f220014b328029cf5d8e161d0c.png


2 merge join


Merge Join 是先将关联表的关联列各自做排序,
然后从各自的排序表中抽取数据,到另一个排序表中做匹配。
适用情况:
1.RBO模式
2.不等价关联(>,<,>=,<=,<>)
3.HASH_JOIN_ENABLED=false
4. 用在没有索引,并且数据已经排序的情况.


8a4d4d1994d04cf5aa500aa326bb7f50.png

6cea4ca98bfd418b9c7f5f0e94b214a7.png


3.nested loop


  Nested loops 工作方式是循环从一张表中读取数据(驱动表outer table),
  然后访问另一张表(被查找表 inner table,通常有索引)。
  驱动表中的每一行与inner表中的相应记录JOIN。类似一个嵌套的循环。
适用情况:
适用于驱动表的记录集比较小(<10000)而且inner表需要有有效的访问方法(Index),
并且索引选择性较好的时候.
JOIN的顺序很重要,驱动表的记录集一定要小,返回结果集的响应时间是最快的。


de8cc721921344daa83e5710dfc5a9ca.png


75623324721a4942bb4041b4adb1e404.png



目录
相关文章
|
23天前
|
Oracle 关系型数据库 数据库
已解决:idea 连接 oracle 数据库 避雷
已解决:idea 连接 oracle 数据库 避雷
20 2
|
4天前
|
Oracle 数据可视化 关系型数据库
Oracle数据库安装及使用Navicat连接oracle2
Oracle数据库安装及使用Navicat连接oracle
28 1
|
5天前
|
SQL 分布式计算 大数据
MaxCompute产品使用问题之如果oss文件过大,如何在不调整oss源文件大小的情况下优化查询sql
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
12天前
|
SQL 关系型数据库 MySQL
SQL优化方法有哪些?
【6月更文挑战第16天】SQL优化方法有哪些?
220 5
|
8天前
|
SQL 存储 关系型数据库
不懂索引,简历上都不敢写自己熟悉SQL优化
大家好,我是考哥。今天给大家带来MySQL索引相关核心知识。对MySQL索引的理解甚至比你掌握还重要,索引是优化SQL的前提和基础,我们一步步来先打好地基。当MySQL表数据量不大时,缺少索引对查询性能的影响都不会太大,可能都是0.0几秒;但当表数据量逐日递增时,建立一个合适且优雅的索引就至关重要了。
796 0
不懂索引,简历上都不敢写自己熟悉SQL优化
|
12天前
|
SQL 数据处理 数据库
如何进行SQL查询优化?
【6月更文挑战第16天】如何进行SQL查询优化?
363 3
|
13天前
|
Oracle 关系型数据库 数据库
实时计算 Flink版产品使用问题之连接到Oracle数据库但无法读取到数据,是什么导致的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
19天前
|
SQL 缓存 监控
sql anywhere 数据库优化
SQL Anywhere数据库优化涉及索引、查询、配置、硬件、维护和应用程序多方面。关键策略包括:确保索引有效且定期优化,使用EXPLAIN计划优化查询,调整数据库缓存设置,升级硬件,定期备份,优化SQL语句并减少数据库访问。实时监控性能并据此调优,但需依据具体应用场景和版本进行适配测试。
|
21天前
|
SQL Oracle 关系型数据库
一些非常有用的Oracle SQL
一些非常有用的Oracle SQL
22 4
|
22天前
|
存储 SQL 关系型数据库
MySQL数据库——SQL优化(1/3)-介绍、插入数据、主键优化
MySQL数据库——SQL优化(1/3)-介绍、插入数据、主键优化
236 1

推荐镜像

更多