我有一个运行速度很慢的查询(见下文)。同时寻找改善它的方式,我们发现,约十倍,如果我们更换了更快的查询运行LEFT OUTER JOIN与LEFT JOIN HASH
结果似乎是一样的。是吗?在什么情况下它不会返回相同的结果?有什么区别?在运行 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
Run Code Online (Sandbox Code Playgroud)