嵌套循环连接如何与内连接不同?

时间:2013-04-04 13:12:45

标签: sql-server-2008

在工作\伪代码方面,嵌套循环连接与内连接有什么不同?使用嵌套循环连接而不是内连接有什么意义。

1 个答案:

答案 0 :(得分:4)

它不是“而不是” - 逻辑 INNER JOIN可以用多种物理方式处理 - 嵌套循环,散列和合并。

当连接的一侧相对较小时,通常选择嵌套循环连接。考虑将Customers表加入Orders表 - 理想情况下,客户将放置大量订单,因此嵌套循环连接的工作方式(概念上),如果不平衡足够高,它是从第一个客户开始,收集他们的订单,然后移动到下一个客户,收集他们的订单等。实际上,优化器将在计划编译时做出关于哪个物理操作最有意义的决定,它确实这基于多种因素,如两个表的基数,统计数据,硬件资源等。

(我将简要说明合并连接的工作方式类似于拉链,并且散列连接的工作方式类似于一组存储桶。但是您可以在其他地方阅读这些内容以获取更多详细信息。)

Understanding Nested Loop Joins

Understanding Merge Joins

Understanding Hash Joins

下次,请搜索这些概念,并在实际遇到实际问题时了解编程帮助,或了解为什么在特定情况下选择了特定的连接方法。这不是图书馆。 : - )