我什么时候应该使用INNER -LOOP- JOIN而不是INNER JOIN

时间:2011-06-30 01:21:16

标签: sql-server sql-server-2008 inner-join join-hints

今天我在SQL Server中了解了一个名为INNER LOOP JOIN的东西。

这是什么意思? (谷歌没有帮助......或者我应该说......关于它的博客文章有点......技术性,并且让我大吃一惊。)

此外,使用INNER LOOP JOIN优于标准INNER JOIN的一些常见方案是什么?

2 个答案:

答案 0 :(得分:24)

LOOP |哈希| MERGE是Join提示,指定查询中的连接应使用循环,散列或合并。使用LOOP | HASH | MERGE JOIN强制执行两个表之间的特定连接。 LOOP不能与RIGHT或FULL一起指定为连接类型。

您应该始终使用INNER JOIN。让查询优化器决定是否要进行LOOP,MERGE或HASH连接。在几乎所有情况下,优化器都会做出更好的判断。将使用哪一个以及何时可以在我的演示文稿http://sqlbits.com/Sessions/Event4/Understanding_Graphical_Execution_Plans中找到。

答案 1 :(得分:8)

您所指的是join hint。与其他提示一样,连接提示应该仅作为最后的手段指定,因为大多数情况下SQL服务器会选择正确的算法。一篇很好的解释其中一些内容的文章是this