我开始学习执行计划,并对哈希匹配的工作原理以及为什么在简单的联接中使用它感到困惑:
select Posts.Title, Users.DisplayName
From Posts JOIN Users on
Posts.OwnerUserId = Users.Id
OPTION (MAXDOP 1)
据我了解,顶部索引扫描的结果变为具有哈希功能,并且底部索引群集扫描的每一行都被查找。我了解哈希表至少在某种程度上是如何工作的,但是在这样的示例中,我对哪些值确切地被哈希感到困惑。
对我来说有意义的是,它们之间的公共字段id被散列了-但是,如果是这种情况,为什么还要散列一个数字呢?