SQL Server 2005合并联接算法(三)

日期: 2008-08-25 作者:zping 来源:TechTarget中国 英文

  如果我们换一下,将select a.*换成select *, 看看成本


  SQL Server 2005合并联接算法(图二)


  这里hash连接是最优的算法


  执行结果:  






(10468 行受影响) 
  表’workflowbase1’。扫描计数3,逻辑读取1571 次,物理读取0 次,预读0 次,lob 逻辑读取0 次,lob 物理读取0 次,lob 预读0 次。 
  表’workflowinfo1’。扫描计数3,逻辑读取9604 次,物理读取0 次,预读0 次,lob 逻辑读取0 次,lob 物理读取0 次,lob 预读0 次。 
      (10468 行受影响)y 
  表’Worktable’。扫描计数0,逻辑读取0 次,物理读取0 次,预读0 次,lob 逻辑读取0 次,lob 物理读取0 次,lob 预读0 次。 
  表’workflowinfo1’。扫描计数1,逻辑读取9604 次,物理读取0 次,预读0 次,lob 逻辑读取0 次,lob 物理读取0 次,lob 预读0 次。 
  表’workflowbase1’。扫描计数1,逻辑读取1571 次,物理读取0 次,预读0 次,lob 逻辑读取0 次,lob 物理读取0 次,lob 预读0 次。
 

  这里的hash和merge的io次数一样,但merge连接里多了一个排序操作,占到整个成本的60&,的确验证了上面的一句话:


  合并联接本身的速度很快,但如果需要排序操作,选择合并联接就会非常费时。


  两个联接输入并不小但已在二者联接列上排序,则合并联接是最快的联接操作。如果没有排序hash连接是最优的操作。


  注意:这里的排序指两个输入集合必须按相等列进行分别排序。而不是按其他列排序。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

zping
zping

相关推荐