浅谈SQLServer中的三种物理连接操作.docxVIP

  • 5
  • 0
  • 约3.97千字
  • 约 14页
  • 2017-08-29 发布于重庆
  • 举报
浅谈SQL Server中的三种物理连接操作简介在SQL Server中,我们所常见的表与表之间的Inner Join,Outer Join都会被执行引擎根据所选的列,数据上是否有索引,所选数据的选择性转化为Loop Join,Merge Join,Hash Join这三种物理连接中的一种。理解这三种物理连接是理解在表连接时解决性能问题的基础,下面我来对这三种连接的原理,适用场景进行描述。嵌套循环连接(Nested Loop Join)循环嵌套连接是最基本的连接,正如其名所示那样,需要进行循环嵌套,嵌套循环是三种方式中唯一支持不等式连接的方式,这种连接方式的过程可以简单的用下图展示:图1.循环嵌套连接的第一步图2.循环嵌套连接的第二步由上面两个图不难看出,循环嵌套连接查找内部循环表的次数等于外部循环的行数,当外部循环没有更多的行时,循环嵌套结束。另外,还可以看出,这种连接方式需要内部循环的表有序(也就是有索引),并且外部循环表的行数要小于内部循环的行数,否则查询分析器就更倾向于Hash Join(会在本文后面讲到)。通过嵌套循环连接也可以看出,随着数据量的增长这种方式对性能的消耗将呈现出指数级别的增长,所以数据量到一定程度时,查询分析器往往就会采用这种方式。下面我们通过例子来看一下循环嵌套连接,利用微软的AdventureWorks数据库:图3.一个简单的嵌套循环连接图3中Prod

文档评论(0)

1亿VIP精品文档

相关文档