ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 表连接方法

表连接方法

原创 Linux操作系统 作者:psufnxk2000 时间:2011-06-24 15:05:56 0 删除 编辑
表连接方法:
1、嵌套循环连接(nested loops join)
2、排序合并连接(sort merge join)
3.集群连接(cluster join)
4.笛卡尔连接(cartesian join)
5.散列连接(hash join)
6.索引连接(index join)
1:嵌套循环连接。
  假设有人给您一个电话号码簿,并需查找其中20个人的号码,要求你写下每个人的名字以及他们各自的电话号码,你可能会从前往后查阅姓名列表,在电话簿中查找每个人的姓名。这个任务相对简单,是因为电话簿是按姓名的字母排序的。但是,当你正在查找剩余的姓名和号码时,其他人就可以拨打你已经写下来的姓名和号码,这种情况就称为嵌套循环连接。
 在嵌套循环连接中,oracle从第一个行源中读取第一行,然后和第二个行源中的数据进行对比。所有匹配的记录放在结果集中,然后oracle将读取第一个行源中的下一行。按这种方式直到每一个数据源中的所有行都 经过处理。第一个行的源通常称为外部表,或者驱动表,相应 的第二个行源称为内部表,使用黄磊循环连接是一种从连接结果中提取第一批记录的最快速的方法。
2.排序合并连接
假设两个销售人员参加了一个会议,每个人都搜集了100张潜在客户的名片,他们每个人现在都有一堆没有排序的名片,并且都想检查一下两堆名片中有多少重复的名片。销售人员按字母排序整理了名片堆,然后两个人轮流依次报名片。由于两堆名片都已经序,将很容易找到两堆名片中重复的名片。这个例子解释了排序合并连接。
在排序合并连接中,oracle分别将第一个源表、第二个源表按他们各自要连接的列排序,然后将两个已经排序的源表合并。如果找到匹配的数据,就放在结果集中。
在缺乏数据的选择性或者可用的时,或者两个源表都过于庞大时,排序合并连接将比嵌套循环连接更加高效。但是排序全并连接 只能用于造价连接 where d.deptno=e.deptno 而不是where d.deptno>=e.deptno。排序合并连接需要临时的内存块,以用于排序,这将导致 在临时表空间占用更多的内存和磁盘i/o。
3.集群连接
集群连接实际上是嵌套循环连接的一种特例。如果所连接的两张行源表实际 上是集群中的表,并且连接是两张行源表的集群键间的造价连接,那么在oracle中就能使用集群连接。这种情况下,oracle从第一张行源表中读取第一行,并在第二张行源表中使用cluser索引查找所有匹配的项。集群索引效率极高,因为两个参加 连接的行源表实际上处于同一个物理数据块上。然而集群连接有它自己的限制,你不可能进行没有集群的集群连接。所以集群连接实际上很少使用。
4.散列连接
当内存能够提供足够的空间时,散列连接 是oracle优化器通常的选择。在散列连接中,oracle访问一张表(通常是连接结果中较小的表),并在内存中建立 一张基于连接键的散列表。然后它扫描连接中其他的表(通常是较大的表),并根据散列表检测 是否有匹配的记录。只有参数 pga_aggregate_target设置了足够大的值的时候,oracle才会有效地使用散列连接。如果设置了sga_target,则必须pga_aggregate_target,因为sag_target不包含pga。散列连接与嵌套循环连接有点类似,因为其中嵌套循环 oracle先建立 一张散列表以篮球操作进行,然后循环访问散列表。当使用ordered提示时,from 子句中的第一张表将用于建立 散列表。
5.索引连接
在oracle 8i之前,必须访问 表,直到索引包含了所有需要的信息.从oracle 8i起,如果一组已存在的索引包含了查询所需要的所有信息,那么优化器将在索引中有选择地生成一组散列 表。可通过范围扫描或者快速全局扫描访问到每一个索引,而赞扬 佑种扫描方法取决于where子句中的可用条件。在一张表有大量的列,而你只想访问 有限的列时,这种方法非常有效。where子句中约束条件越多,执行速度在越快。因为优化器在评估执行查询的优化路径时,将把约束条件作为选 项看待。
必须 在合适的列上建 立索引,这样可以确保优化器将索引连接作为可选项之一。这个任务通常牵涉到在没有索引,或者 以前没有建立 联合索引的列上增加 索引。相对于快速全局扫描,索引的优势在于:快速全局扫描只有一个单一索引满足整个查询。索引连接可以 有多个索引满足整个查询。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25099483/viewspace-700681/,如需转载,请注明出处,否则将追究法律责任。

上一篇: spotlight
下一篇: 面临失业
请登录后发表评论 登录
全部评论

注册时间:2011-05-31

  • 博文量
    215
  • 访问量
    627319