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

Pur*_*ome 28 sql-server inner-join sql-server-2008 join-hints

今天我在SQL Server中了解了一个叫做的东西INNER LOOP JOIN.

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

此外,使用INNER LOOP JOIN超标准的一些常见场景是什么好主意INNER JOIN

Ash*_*Ash 27

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

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

  • 不同的连接类型针对不同的查询语义进行了优化,是的,这些主要基于统计/基数,还有其他因素,例如连接的一侧是否比另一侧大得多,是否在每一侧的输入联系是排序等等我和其他人在一起...如果关于这个的博客帖子让你大吃一惊,你最好让优化器决定,直到你掌握了连接类型之间的差异*和*感觉你比优化器更聪明. (2认同)

ami*_*t_g 9

你所指的是一个联接提示.与其他提示一样,连接提示应该仅作为最后的手段指定,因为大多数情况下SQL服务器会选择正确的算法.一篇好文章来解释一些是这样.