文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

ORACLE表与表联接的几种方式

2021-06-19 03:41

关注


	ORACLE表与表联接的几种方式
[数据库教程]

 

 三大表与表联接方式

NESTED LOOPS 嵌套循环

HASH JOIN 哈希联接

SORT MERGE 排序合并联接

 

 

 

NESTED LOOPS  嵌套循环

  嵌套循环的本质是将外部数据集连接到内部数据集,对于外部数据集中与单表谓词匹配的每一行,数据库将检索内部数据集中满足连接谓词的所有行。

工作原理:

         a.优化器确定驱动行源并将其指定为外部循环。

         b.优化器将另一行源指定为内部循环。

         c.从外部行源获取一行

         d.探查内部行源以查找与谓词条件匹配的行

         e.重复前面的步骤,直到通过获取请求获得所有行

 

嵌套循环优先使用场景:

          a.查询结果集偏小。

          b.数据库以优化器模式设置为联接大型数据集FIRST_ROWS

          c.内部循环有有效访问方式(例如存在高效索引)

 

HINT : 

   ----d 为内部循环表-被驱动表

 

2.HASH JOIN 哈希联接

  优化器使用两个数据集中的较小者在内存中的连接键上构建哈希表,并使用确定性哈希函数指定哈希表中存储每一行??的位置。然后,数据库扫描更大的数据集,探测哈希表以查找满足联接条件的行。

   工作原理:

 

  1. 数据库对较小的数据集执行完整扫描,然后在PGA和磁盘上构建一个哈希桶阵列。

    当PGA哈希区域填满时,数据库将在哈希表中找到最大的分区,并将其写入磁盘上的临时空间。数据库将磁盘上属于该磁盘分区的任何新行以及PGA中的所有其他行存储。因此,哈希表的一部分在内存中,一部分在磁盘上。

  2. 数据库在读取其他数据集时会经过第一遍。

    对于每一行,数据库执行以下操作:

    1. 将相同的哈希函数应用于一个或多个联接列,以计算相关哈希桶的数量。

    2. 探测哈希表,以确定存储中的行中是否存在行

      如果散列值指向内存中的一行,则数据库将完成连接并返回该行。但是,如果该值指向磁盘上的哈希分区,则数据库使用与原始数据集相同的分区方案将该行存储在临时表空间中。

  3. 数据库逐个读取每个磁盘上的临时分区

  4. 数据库将每个分区行连接到相应的磁盘临时分区中的行.

 

哈希联接优先使用场景:

    a.联接相对大量的数据(或必须连接很大比例的小表)且联接为等联接。

 

HINT : USE_HASH

 

3.SORT MERGE 排序合并联接

  排序合并联接是嵌套循环联接的一种变体。

如果联接中的两个数据集尚未排序,则数据库将它们排序。这些是SORT JOIN操作。对于第一个数据集中的每一行,数据库都会根据匹配的行来探测第二个数据集,并将它们连接起来,并将其起始位置基于上一次迭代中进行的匹配。这就是MERGE JOIN操作。

 

工作原理:

    

与嵌套循环联接中一样,排序合并联接读取两个数据集,但在尚未对它们进行排序时对其进行排序。

对于第一个数据集中的每一行,数据库在第二个数据集中找到起始行,然后读取第二个数据集,直到找到不匹配的行。

 

通常情况下,只有在以下情况发生时,才会使用排序合并连接:

      1)RBO模式

      2)不等值连接(>,<,>=,<=)

      3)哈希连接被禁用时(_HASH_JOIN_ENABLED=false)

      4)数据源已排序

 

 HINT:

USE_MERGE

 

    

ORACLE表与表联接的几种方式

原文地址:https://www.cnblogs.com/lwq9614/p/13335251.html

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯