并行重新分区、排序和哈希匹配

JHF*_*HFB 2 sql-server-2008

我刚刚开始深入研究查询计划,最近了解到“哈希匹配”很糟糕。不过,我知道很少有事情如此绝对,而且我想确定我是否有错误的哈希匹配。

我的查询包含两个表,使用并行性。它在两个表上使用聚集索引查找,然后在这两个查找之后转到具有分区类型散列的并行(重新分区流)步骤。对于一个表,创建一个位图,然后通过哈希匹配将这两个连接(内连接)。

我的理解是,如果要连接的数据是有序的,则将使用合并连接 - 这是更可取的。聚集索引搜索是有序的。

所以...我想我只是在寻找有关这种情况的一些信息。哈希匹配是否总是遵循流的重新分区?重新分区会忽略顺序吗?或者我不应该被这种“邪恶的”哈希匹配所困扰?

谢谢!!

Eri*_*ins 5

哈希匹配不一定是坏的@all。请参阅 Grant Friitchey 的很棒(而且免费!)的书:SQL Server 执行计划

  • +1 - 没有一种连接类型比另一种更好,它们都有自己的用途和适当的用例。哈希匹配是三者中最通用的。 (3认同)