需要进行大数据量处理的分析型数据库中,join 过程在查询耗时中占很大比重,
其中HASH JOIN 又是最常见的JOIN 类型。因此,提升HASH JOIN 算子的性能
对整体查询效能的提升有重要意义。
One-Pass Hash Join 算法是HASH JOIN 的一种优化算法。通过对JOIN 双方先进
行哈希划分,
同组分片进行HASH JOIN,
最后合并各组JOIN 结果的方法,
使JOIN
耗时随数据量的增长呈线性增长趋势。这个改进提高了HASH JOIN 算法对数据
增长的适应性,同时也大幅提升了大数据量下的查询效能。
开启
One-Pass
Hash
Join
需要配置
GNode
配置文件选项
_gbase_one_pass_hash_join;
当_gbase_one_pass_hash_join = 0 或未设置时,
使用GBase 8a MPP CLuster 原
始Hash Join 算法;
当_gbase_one_pass_hash_join = 1 时,根据traverse 表的数据量和hash buffer
大小自动评估是否使用One-Pass Hash Join 算法。如果hash buffer 不能容纳
traverse 表全表所建的哈希表,则使用One-Pass Hash Join 算法,否则使用原
始Hash Join 算法;
当_gbase_one_pass_hash_join = 2 时,
不进行判断直接使用One-Pass Hash Join
算法。
注意
当前的One-Pass Hash Join 实现只在并行时生效,即需要在配置文件中设置
gbase_parallel_execution = 1。
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1335