星型哈希连接(SHJ):高效处理即席星型连接查询
1. 基础概念
在数据库管理系统(DBMS)中,如 IBM DB2、Microsoft SQL - Server 或 Oracle 等,混合哈希连接(Hybrid Hash Join)是一种常用的基于哈希的连接算法。它主要分为两个阶段:
- 构建阶段 :通常使用较小输入关系的元组构建哈希表。
- 探测阶段 :使用较大关系的元组来探测哈希表,查找匹配项。
如果构建阶段创建的哈希表无法完全放入内存,就会使用哈希方法对两个输入关系进行分区,确保较小关系的每个分区都能放入内存,然后在对应的分区对上执行连接操作。
为了加快执行速度,混合哈希连接还可以使用位过滤器(Bit Filters)。位过滤器在连接的构建阶段创建,通过哈希将构建关系中每条记录的连接键值映射到位过滤器中,并将对应位设置为 1。在探测阶段,使用相同的哈希函数检查位过滤器,如果对应位在构建阶段未设置,则可以过滤掉该元组,这样能避免在探测阶段将元组溢出到磁盘,节省 I/O 操作。
当执行并行非并置的混合哈希连接时,构建关系或探测关系,或者两者都可能需要重新分区。常见的连接计划策略有两种:
- 选择性地重新分区探测关系,并将其发送到构建关系已按连接键分区的特定目标集群。
- 将构建关系广播到包含探测关系的所有集群。这里主要关注前者。
2. 星型哈希连接架构
一个包含 n 个维度表和一个事实表的星型连接查询,可以通过 n 个混合哈希连接操作以左深树状查询计划的形式执行。以下是相关定义:
- (D
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



