快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

和记娱乐黄埔怡情_机器人论坛



基础观点

Nested loop join:

Outer table中的每一行与inner table中的响应记录join,类似一个嵌套的轮回。

Sort merge join:

将两个表排序,然后再进行join。

Hash join:

将两个表中较小的一个在内存中构造一个Hash 表(对Join Key),扫描另一个表,同样对Join Key进行和记娱乐黄埔怡情Hash后探测是否可以join,找出与之匹配的行。

一张小表被和记娱乐黄埔怡情hash在内存中。由于数据量小,以是这张小表的大年夜多半数和记娱乐黄埔怡情据已经驻入在内存中,剩下的少量数据被放置在临时表空间中;

每读取大年夜表的一笔记录,就和小表中内存中的数据进行对照,假如相符,则急速输出数据(也便是说没有读取临时表空间中的小表的数据)。而假如大年夜表的数据与小表中临时表空间的数据相相符,则不直接输出,而是也被存储临时表空间中。

昔时夜表的所稀有据都读取完毕,将临时表空间中的数据以其输出。假如小表的数据量足够小(小于hash area size),那所稀有据就都在内存中了,可以避免对临时表空间的读写。

假如是并行情况下,前面中的第2步就变成如下了:每读取一条大年夜表的记录,和内存中小表的数据对照,假如相符先做join,而不直接输出,直到整张大年夜表数据读取完毕。假如内存足够,Join好的数据就保存在内存中。否则,就保存在临时表空间中。

适用范围

Nested loop join:

适用于outer table(有的地方叫Master table)的记录集对照少(效率对照

Hash join的主要资本耗损在于CPU(在内存中创建临时的hash表,并进行hash谋略),而merge join的资本耗损主要在于磁盘I/O(扫描表或索引)。在并行系统中,hash join对CPU的耗损加倍显着。以是在CPU首要时,最好限定应用hash join。

在绝大年夜多半环境下,hash join效率比其他join要领效率更高:

在Sort-Merge Join(SMJ),两张表的数据都必要先做排序,然后做merge。是以和记娱乐黄埔怡情效率相对最差;

Nested-Loop Join(NL)效率比SMJ更高。分外是当驱动表的数据量很大年夜(集的势高)时。这样可以并行扫描内表。

Hash join效率最高,由于只要对两张表扫描一次和记娱乐黄埔怡情。

您可能还会对下面的文章感兴趣: