网站大量收购独家精品文档,联系QQ:2885784924

几种常用表连接式.docxVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1 /1 1 /1 1.1.1嵌套循环连接 在嵌套循环连接中,Oracle从第一个行源中读取第一行,然后和第 二个行源中的数据进行对比。所有匹配的记录放在结果集中,然后 Oracle将读取第一个行源中的下一行。按这种方式直至第一个数 据源中的所在行都经过处理。第一个记录源通常称为外部表,或者 驱动表,相应的第二个行源称为内部表。使用嵌套循环连接是一 种从连接结果中提取第一批记录的最快速的方法。 在驱动行源表(就是您正在查找的记录)较小、或者内部行源表 已连接的列有惟一的索引或高度可选的非惟一索引时,嵌套 循环连接效果是比较理想的。嵌套循环连接比其他连接方法有 优势,它可以快速地从结果集中提取第一批记录,而不用等待 整个结果集完全确定下来。这样,在理想情况下,终端用户就可 以通过查询屏幕查看第一批记录,而在同时读取其他记录。不 管如何定义连接的条件或者模式,任何两行记录源可以使用嵌 套循环连接,所以嵌套循环连接是非常灵活的。 然而,如果内部行源表(读取的第二张表)已连接的列上不包含 索引,或者索引不是高度可选时,嵌套循环连接效率是很低 的。如果驱动行源表(从驱动表中提取的记录)非常庞大时,其 他的连接方法可能更加有效。 图1T说明了程序清单1-1中查询执行的方法。 * * select / +ordered /ename, dept. deptno from dept, emp where dept. deptno=emp. deptno DESCRIPTIONDEPTNOH dATECHWMTER DESCRIPTION DEPTNO H d A TECHWMTER ADMIN 10 20 HR 30 AP 40 ENAJIE DEPTNO GALLOWAY 10 DULLEY 20 R REITER 30 TAYLOR 20 HATHAWAY 20 PREVATT 30 返回1个记录 EMAME DEPTNO 嵌套IB环连接 直到DEPT表中的DEPTH)字毂的斫有值都与 EMP表中的记录相FG较后,循环才会停止。后面 的查询结果■如下斫示(对应于DEPTIfO的20、30 和40” 第2个循环返回3个记录 ENAJ 正 DEPTNO DULLEY 20 TAYLOR 20 HATHAWAY 20 第3个循环返回2个记录 ENAJ正 DEPTNO REITER 30 PREVATT 30 第4个循环末返回记录 10GALLOWAY 10 图IT嵌套储环连接查询图 1. 1. 2排列合并连接 在排列合并连接中,Oracle分别将第一个源表、第二个源表按它们 各自要连接的列排序,然后将两个已经排序的源表合并。如果找到 匹配的数据,就放到结果集中。 在缺乏数据的选择性或者可用的索引时,或者两个源表都过于庞 大(超过记录数的5%)时,排序合并连接将比嵌套循环连更加高 效。但是,排列合并连接只能用于等价连接(WHERE D. deptno=E. de jptno,而不是 WHERE D. deptno〉二E. deptno) o 排列 合并连接需要临时的内存块,以用于排序(如果SORT_AREA_SIZE设 置得太小的话)。这将导致在临时表空间占用更多的内存和磁盘 I/Oo 图1-2解释了程序清单1-2查询执行的方法。 select /*+ordered*/ename, dept, deptno from emp, dept where dept. deptno=emp. deptno ENABEGALLOWAY10dDULLEY20密 ENABE GALLOWAY 10 d DULLEY 20 密 REITER 30 TAYLOR 20 HATHAWAY 20 PREVATT 30 现有关 m 10 20 30 20 20 30 排 序 ——? 巴 S 皿P 10 20 30 20 20 30 蜂序合并连接 1 DEFTNO 10 20 DESCRIPTION TECHWRITER ADMIN DEPT :: £ i DEPT 7 20 30 HR 30 30 40 AP 20 DEEI ENME 10 GALLOWAY 20 DULLEY 20 TAYLOR 20 HATHAWAY 30 REITER 30 PREVATT 图1?2排序合并连接查 1. 1. 3哈希连接 当内存能够提供足够的空间时,哈希(HASH)连接是Oracle优化器 通常的选择。在哈希连接中,Oracle访问一张表(通常是较大的表), 并在内存中建立一张基于连接键的哈希表。然后它扫描连接中其 他的表(通常是较大的表),并根据哈希表检测是否有匹配的记录。 只有在数据库初始化参数HASH_JOIN_ENABLED设为True,并且为 参数PGA_AGGREG

文档评论(0)

微传科技 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体唐山市微传科技有限公司
IP属地河北
统一社会信用代码/组织机构代码
91130281MA0DTHX11W

1亿VIP精品文档

相关文档