表连接方式及使用场合
NESTED LOOP
对于被连接的数据子集较小的情况,nested loop连接是个较好的选择。nested loop就是扫描一个表,每读到一条记录,就根据索引去另一个表里面查找,没有索引一般就不会是 nested loops。
一般在nested loop中, 驱动表满足条件结果集不大,被驱动表的连接字段要有索引,这样就走nested loop。如果驱动表返回记录太多,就不适合nested loops了。如果连接字段没有索引,则适合走hash join,因为不需要索引。
可用ordered提示来改变CBO默认的驱动表,可用USE_NL(table_name1 table_name2)提示来强制使用nested loop。
HASH JOIN
hash join是CBO 做大数据集连接时的常用方式。优化器扫描小表(或数据源),利用连接键(也就是根据连接字段计算hash 值)在内存中建立hash表,然后扫描大表,每读到一条记录就来探测hash表一次,找出与hash表匹配的行。
当小表可以全部放入内存中,其成本接近全表扫描两个表的成本之和。如果表很大不能完全放入内存,这时优化器会将它分割成若干不同的分区,不能放入内存的部分就把该分区写入磁盘的临时段,此时要有较大的临时段从而尽量提高I/O 的性能。临时段中的分区都需要换进内存做hash join。这时候成本接近于全表扫描小表+分区数*全表扫描大表的代价和。
至于两个表都进行分区,其好处是可以使用parallel query,就是多个进程同时对不同的分区进行join,然后再合并。但是复杂。
使用hash join时,HASH_AREA_SIZE初始化参数必须足够的大,如果是9i,Oracle建议使用SQL工作区自动管理,设置WORKAREA_SIZE_POLICY 为AUTO,然后调整PGA_AGGREGATE_TARGET即可。
以下条件下hash join可能有优势:
两个巨大的表之间的连接。
在一个巨大的表和一个小表之间的连接。
可用ordered提示来改变CBO默认的驱动表,可用USE_HASH(table_name1 table_name2)提示来强制使用hash join。
SORT MERGE JOIN
sort merge join的操作通常分三步:对连接的每个表做table access full;对table access full的结果进行排序;进行merge join对排序结果进行合并。sort merge join性能开销几乎都在前两步。一般是在没有索引的情况下,9i开始已经很少出现了,因为其排序成本高,大多为hash join替代了。
通常情况下hash join的效果都比sort merge join要好,然而如果行源已经被排过序,在执行sort merge join时不需要再排序了,这时sort merge join的性能会优于hash join。
在全表扫描比索引范围扫描再通过rowid进行表访问更可取的情况下,sort merge join会比nested loops性能更佳。
可用USE_MERGE(table_name1 table_name2)提示强制使用sort merge join
分享到:
相关推荐
在Oracle数据库中,为了获取来自多个表的数据,我们需要使用不同的连接方式来实现这一目的。本文将详细介绍三种主要的表连接方式:嵌套循环连接(Nested Loop Join,简称NL Join)、排序合并连接(Sort Merge Join,...
### Oracle表的连接方式详解 在Oracle数据库中,表连接是一种常见的操作,用于结合两个或多个表中的数据,以提供更全面的信息。Oracle提供了三种主要的表连接方式:NESTED LOOP JOIN、HASH JOIN和SORT MERGE JOIN。...
本文将详细介绍LED的几种常用连接方式及故障排查方法。 一、LED连接方式 LED的连接方式主要分为串联、并联以及混联三种形式,每种形式根据其特点适用于不同的使用场景和要求。 1. 串联形式 在串联连接方式中,LED...
工程图学是机械设计的基础,其中第11讲主要探讨了零件间的各种连接方式,包括动连接和静连接。在实际工程中,这些连接方式确保了零部件的稳定性和可拆装性。本讲重点关注了螺纹连接、铆钉连接、键连接和销连接。 ...
接下来,我们将详细介绍几种常用的连接方式。 #### 1. 直接通过字符串设置连接 这种方法是最直接的,通常适用于简单的应用场合或快速原型开发。代码示例如下: ```csharp string connectionString = "DataSource=...
其连接方式主要有电熔连接和热熔连接两种,每种连接方式都有其独特的技术和注意事项。 1. 电熔连接: 电熔连接是通过内置电热丝的电熔管件,利用电流加热管件和管材的接触面,使其熔化并结合在一起。这种连接方式...
它通常与其他连接方式配合使用,并不是独立的连接方式。 5. 堆叠板设计(Sandwich Plate Design)(叠加阀) 叠加阀是一种特殊的设计方式,它允许几个液压阀元件互相叠加在一起,通过共用的压力板来实现连接。这种...
不同的连接方式适用于不同场合,如热熔连接适合于较大管径,而电熔连接更适于大口径管道的快速连接。选择连接方式时,需要综合考虑管径、工作压力、使用环境等因素。严禁在PE管上直接车制螺纹或使用明火烘烤,避免...
首先,内胀式弹簧是一种特殊的电气连接方式,它利用弹簧的弹力来实现导线与接线端子的紧密接触。这种方式的优点在于可以提供稳定的接触压力,即使在导线热胀冷缩或振动环境下,也能保持良好的电气连接,避免因接触...
电缆内导体与连接器内导体焊接,这种连接方式最为稳定可靠,也最常用。 2)。插入式 这种安装方式是在电缆内导体上开孔,并且切槽,如插孔一样,电缆内导体插入,这种安装方法比较简单,安装迅速,不需要...
Kingview与S7-200 PLC的串口连接方式是指使用S7-200系列PLC上的PPI编程口,使用西门子标准编程电缆或标准RS-485电缆连接到计算机串口上。PPI是西门子S7-200系列点对点通信协议,使用西门子标准PC/PPI电缆将计算机...
### 长连接和短连接的概念 ...选择哪种连接方式取决于具体的应用需求、系统资源状况以及业务特性等因素。实际应用中应根据实际情况灵活选择合适的连接管理模式,以达到最优的性能表现和用户体验。
以下是对月牙肋钢筋连接器及其使用方法的详细解释: 一、月牙肋钢筋连接器的构造与特性 月牙肋钢筋连接器因其形状类似于月牙而得名,其主要组成部分包括主体部分和月牙形肋部。主体部分通常由高强度钢材制成,能够...
在TCP/IP通信程序设计中,长连接和短连接是两种主要的连接方式,它们各自有其特点和适用场景。理解这两种连接方式对于开发者来说至关重要,因为它们直接影响到系统的效率、资源管理和安全性。 **长连接**是指客户端...
1. 螺纹连接:这是最常见的连接方式,通过在塑料件上预埋螺纹或使用自攻螺丝将五金件固定。预埋螺纹可以增加连接强度,而自攻螺丝则简化了装配过程。 2. 钉接:使用塑料钉或金属钉将五金件与塑料件固定。这种方法...
### 过电压保护方式与应用场合 过电压保护在电力系统和电子设备中扮演着至关重要的角色,它能够有效防止由于电压突变或过电压事件导致的设备损坏。本文将详细介绍几种常见的过电压保护方法及其适用场景,并通过...
《三相负载的连接方式详解》 在电力系统中,三相负载的连接方式是电气工程中的重要概念,尤其在工业应用和家庭用电中扮演着关键角色。本文将深入探讨三相负载的两种主要连接方式——星形连接(Y形连接)和三角形...
D4效果器的连接方式及操作技巧对于音频专业人士来说至关重要,正确的连接方式能够确保音频信号的高质量传输,而恰当的参数设置则能够进一步提升录音的人声效果。通过对D4效果器的深入了解和实践操作,可以显著提升...