Nested Loop Join 与 Inner Join 在工作\伪代码方面有何不同,以及建议使用 Nested Loop Join 而不是 Inner Join 的要点。
它不是“代替”——逻辑可以用多种 物理INNER JOIN方式处理——嵌套循环、散列匹配或合并。还有第四种类型,自适应连接,但这有点作弊......它实际上只是推迟了嵌套循环和哈希匹配之间的选择。
当连接的一侧相对较小时,通常会选择嵌套循环连接。考虑将Customers表连接到Orders表 - 理想情况下,客户将下了大量订单,因此,如果不平衡足够高,嵌套循环连接的工作方式(概念上)是从第一个客户开始,收集他们的订单,然后转移到下一个客户,收集他们的订单等。实际上,优化器将在计划编译时决定哪种物理操作最有意义,并且它会根据多种因素来决定,例如两个表的基数、统计信息、硬件资源等。
(我将简要说明合并联接的工作原理就像拉链,散列联接的工作原理就像一组桶。但是您可以在其他地方阅读这些内容以获取更多详细信息。)
下次,请搜索这些概念,当您在实现这些概念时遇到实际问题或理解为什么在特定情况下选择特定连接方法时,请寻求编程帮助。这不是图书馆。:-)
| 归档时间: |
|
| 查看次数: |
5455 次 |
| 最近记录: |