Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 嵌套循环联接与内部联接有何不同?_Sql Server 2008 - Fatal编程技术网

Sql server 2008 嵌套循环联接与内部联接有何不同?

Sql server 2008 嵌套循环联接与内部联接有何不同?,sql-server-2008,Sql Server 2008,嵌套循环联接与内部联接在工作\伪代码方面有何不同,以及有哪些要点建议使用嵌套循环联接而不是内部联接。它不是“代替”-逻辑内部联接可以通过多种物理方式处理-嵌套循环、哈希和合并 嵌套循环联接通常在联接的一侧相对较小时选择。考虑将客户表连接到订单表-理想情况下,客户会下大量订单,因此嵌套循环连接的工作方式(概念上)是,如果不平衡程度足够高,从第一个客户开始,收集他们的订单,然后移动到下一个客户,收集他们的订单等。实际上,优化器将在计划编译时决定哪些物理操作最有意义,并基于各种因素进行决策,如两个表的

嵌套循环联接与内部联接在工作\伪代码方面有何不同,以及有哪些要点建议使用嵌套循环联接而不是内部联接。

它不是“代替”-逻辑
内部联接可以通过多种物理方式处理-嵌套循环、哈希和合并

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

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


下次,请搜索这些概念,当您在实现它们或理解在特定情况下选择特定联接方法的原因时,来寻求编程帮助。这不是图书馆。:-)

很抱歉,我们无法完成您的作业。内部联接是逻辑运算符,嵌套循环是物理运算符,因此内部联接在执行时可能会使用嵌套循环联接,具体取决于输入。“嵌套循环运算符执行内部联接、左外部联接、左半联接和左反半联接逻辑运算。”从“逻辑内部联接可以以多种物理方式处理”这句话中,我消除了疑虑!感谢您对未来的详细回答和建议!