【发布时间】:2021-10-27 02:05:15
【问题描述】:
定义说明
当连接表的投影不是时使用哈希连接 已经在连接列上排序。在这种情况下,优化器构建 内部表的连接列上的内存哈希表。这 优化器然后扫描外部表以查找与哈希表的匹配项, 并相应地连接两个表中的数据。
所以表 A 是散列的,表 B 不是。那么我们如何比较散列值和非散列值呢?
【问题讨论】:
标签: join hash hashmap data-modeling
定义说明
当连接表的投影不是时使用哈希连接 已经在连接列上排序。在这种情况下,优化器构建 内部表的连接列上的内存哈希表。这 优化器然后扫描外部表以查找与哈希表的匹配项, 并相应地连接两个表中的数据。
所以表 A 是散列的,表 B 不是。那么我们如何比较散列值和非散列值呢?
【问题讨论】:
标签: join hash hashmap data-modeling
Hash tables(任何类型的)不在散列值和未散列值之间进行比较。
散列表(任何类型)使用键的散列来确定放置实际键(此处为 FK 值)和键的值(此处为,行)。哈希用于确定性但均匀地在存储桶中均匀分布条目,目标是最小化所有存储桶中的最大条目数。
通过动态调整存储桶的数量来保持存储桶大小(每个存储桶的条目数)较小,哈希表可以非常快速地检索,因为一旦找到存储桶,在找到的条目中几乎没有条目需要遍历在那里找到命中(或不命中)。
哈希表是如此之快,以至于它们被认为具有恒定的时间操作 - 即,无论其中存储了多少条目(此处为行),查找/添加条目的时间都是恒定的。
【讨论】:
scans the outer table for matches to the hash table。这个匹配是什么意思?