数据仓库服务 GAUSSDB(DWS)-执行计划算子:连接算子
连接算子
算子 |
含义 |
场景 |
实现特点 |
---|---|---|---|
NestLoop |
嵌套循环连接,暴力连接,对每一行都扫描内表。 |
Inner Join, Left Outer Join, Semi Join, Anti Join |
适用于被连接的数据子集较小的查询。在嵌套循环中,外表驱动内表,外表返回的每一行都要在内表中检索找到它匹配的行,因此整个查询返回的结果集不能太大(不能大于10000),要把返回子集较小的表作为外表,而且在内表的连接字段上建议要有索引。 |
MergeJoin |
归并连接(输入有序),内外表排序,定位首尾两端,一次性连接元组。等值连接。 |
Inner Join, Left Outer Join, Right Outer Join, Full Outer Join, Semi Join, Anti Join |
也称作“融合连接”,是先将关联表的关联列各自做排序,然后从各自的排序表中抽取数据,到另一个排序表中做匹配。 因为Merge join需要做更多的排序,所以消耗的资源更多,因此通常情况下执行性能差于Hash Join。 如果源数据已经被排序过,在执行融合连接时,并不需要再排序,此时Merge Join的性能优于Hash Join。 |
(Sonic) HashJoin |
哈希连接,内外表使用join列的hash值建立hash表,相同值的必在同一个hash桶。等值连接的连接两端必须为类型相同的等值连接,且支持hash散列。 |
Inner Join, Left Outer Join, Right Outer Join, Full Outer Join, Semi Join, Anti Join |
哈希连接,适用于数据量大的表的连接方式。优化器使用两个表中较小的表,利用连接键在内存中建立hash表,然后扫描较大的表并探测散列,找到与散列匹配的行。Sonic和非Sonic的Hash Join的区别在于所使用hash表结构不同,不影响执行的结果集。 |
- 数据仓库服务GaussDB(DWS)_SQL on Anywhere
- GaussDB性能怎么调_华为gaussdb_gaussdb性能_gaussdb学习
- DWS安全_数据仓库服务安全_DWS数据安全管理_DWS安全保障_DWS安全策略
- GaussDB性能_Gaussdb数据库性能_高斯数据库性能-华为云
- GAUSS(DWS)工具_gsql工具_DataStudio工具_DSC工具
- 华为云资料 2021年 7月刊
- 调用GaussDB(DWS) API接口_数据仓库服务调用API_如何调用API_在DWS中调用API
- DWS资源管理_GaussDB(DWS)资源管理作用_DWS资源管控
- 数据库监控DMS_数据库智能运维_了解Auto Pilot_DMS_DWS节点监控
- GaussDB(DWS)服务_什么是IoT数仓_如何使用IoT数仓