我有一个运行速度很慢的查询(见下文)。在寻找改进方法时,我们发现如果我们将LEFT OUTER JOIN替换为LEFT HASH JOIN,查询的运行速度会快十倍
结果似乎是一样的。是吗?在什么情况下它不会返回相同的结果?有什么区别?在运行 LEFT HASH JOIN 而不是 LEFT OUTER JOIN 时,我应该注意什么?
查询中的[ABC].[ExternalTable]表是我添加为外部表的不同服务器上的视图
SELECT t.foo, t.bar, t.data
FROM [dbo].[Table] as t
LEFT OUTER JOIN [ABC].[ExternalTable] as s ON s.foo = t.foo and s.bar = t.bar and s.data = t.data
WHERE s.foo is null and s.bar IS NULL and s.data IS NULL