{LOOP | MERGE | HASH } JOIN

原创 2009年06月26日 17:51:00

表连接的三种方式
1.循环链接 loop join  消耗N的N次方
2.排序链接 merge join  排序后消耗2n
3.哈希链接 hash join   哈希后2n

 

一般情况下我们不需要指定表的连接方式,数据库引擎会选择消耗资源最小的连接方式,当我们用到表变量,然后用表变量链接,就可能会造成表链接方式不对而过分消耗资源

 

此时我们需要指定表连接方式

 

select count(*)
from @temp A ,@temp2 B
where A.a = B.a
option(LOOP  join)

 

select count(*)
from @temp A ,@temp2 B
where A.a = B.a
option(merge join)

 

select count(*)
from @temp A ,@temp2 B
where A.a = B.a
option(hash join)

HASH JOIN ,MERGE JOIN ,NESTED LOOP用法效率比较

概述: NESTED LOOP: 对于被连接的数据子集较小的情况,嵌套循环连接是个较好的选择。在嵌套循环中,内表被外表驱动,外表返回的每一行都要在内表中检索找到与它匹配的行,因此整个查询返回的结果...
  • lichangzai
  • lichangzai
  • 2012年12月19日 17:56
  • 6027

Merge join、Hash join、Nested loop join对比分析

SQL server 内部实现了三种类型的内连接运算,大多数人从来没有听说过这些连接类型,因为它们不是逻辑连接也很少被用于代码中。那么它们什么时候会被用到呢?答案是要依情况而定。这就意味着要依赖于记录...
  • horace20
  • horace20
  • 2013年11月16日 20:11
  • 9304

多表连接的三种方式详解 HASH JOIN MERGE JOIN NESTED LOOP

在多表联合查询的时候,如果我们查看它的执行计划,就会发现里面有多表之间的连接方式。之前打算在sqlplus中用执行计划的,但是格式看起来有点乱,就用Toad 做了3个截图。从3张图里我们看到了几点信息...
  • tianlesoftware
  • tianlesoftware
  • 2010年08月20日 14:46
  • 51026

浅谈SQL Server中的三种物理连接操作(Nested Loop Join、Merge Join、Hash Join)

简介     在SQL Server中,我们所常见的表与表之间的Inner Join,Outer Join都会被执行引擎根据所选的列,数据上是否有索引,所选数据的选择性转化为Loop Join,...
  • a5685263
  • a5685263
  • 2016年06月13日 16:17
  • 1058

浅谈SQL中的三种物理连接操作(HASH JOIN MERGE JOIN NESTED LOOP)

简介 在SQL中,我们所常见的表与表之间的Inner Join,Outer Join都会被执行引擎根据所选的列,数据上是否有索引,所选数据的选择性转化为Loop Join,Merge Join,Ha...
  • liujianfei526
  • liujianfei526
  • 2015年04月05日 13:34
  • 626

表的连接方式:NESTED LOOP、HASH JOIN、SORT MERGE JOIN(修改)

表连接方式及使用场合 NESTED LOOP 嵌套循环连接        由两个for循环组成。不管什么连接,本算法都可以使用。连接的两个关系,分别称之为外层关系和内层关系,把数据块数大的关系作...
  • chengweipeng123
  • chengweipeng123
  • 2012年02月05日 21:08
  • 3741

oracle的表连接hash join、nested loop join

今天打算对hash join和nested loop join的原理及使用做下记录,每次总结完,过一段时间就有写模糊了:   一、hash join原理:        hash join只能在...
  • cupid1102
  • cupid1102
  • 2012年05月22日 15:36
  • 3620

oracle 数据库中几种连接方式执行过程(nested loop、hash join、sort order join)

简单介绍了一下oracle 各种连接方式的执行过程,伪代码内容来源于pro oracle sql。...
  • renfengjun
  • renfengjun
  • 2014年01月21日 10:56
  • 3054

Hash Join 与 Nested-Loop Join

总所周知,Oracle数据库常用的两种优化器:RBO(rule-based-optimizer)和CBO(cost-based-optimizer)。目前更多地采用CBO(cost-based-opt...
  • bbliutao
  • bbliutao
  • 2012年07月08日 21:46
  • 1970

认识优化查询中的Merge Join、Nested Loops和Hash Match

1.基本概念:     Merge Join([排序]合并联接)、Nested Loops(嵌套循环联接)、Hash Match都是物理运算符。       Merge Join常执行Inner...
  • yongsheng0550
  • yongsheng0550
  • 2010年04月05日 17:51
  • 19160
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:{LOOP | MERGE | HASH } JOIN
举报原因:
原因补充:

(最多只允许输入30个字)