oraclehashjoin怎么使用(oracle创建hash索引语句)

技术Oracle数据库中hash join和nested loop怎么用这篇文章主要为大家展示了“Oracle数据库中hash join和nested loop怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,

本文主要展示“如何在Oracle数据库中使用散列连接和嵌套循环”,简单易懂,组织清晰。希望能帮你解开疑惑。让边肖带领大家学习《如何在Oracle数据库中使用散列连接和嵌套循环》一文。

Oracle表连接方法-嵌套循环连接和排序合并连接

关系数据库技术的本质是通过关系表存储标准化的数据,通过各种表连接技术和各种类型的索引技术来检索和处理信息。

表的三种关联方式:

嵌套循环:从表A中提取一条记录,遍历表B找到匹配的记录,然后从表A中提取下一条记录,遍历表B.它是一个双循环hashjoin:根据连接键从表A中计算出一个哈希表,然后从表B中逐个提取记录,计算出哈希值,根据哈希值的哈希值将符合条件的记录匹配到表A中sortmergejoin:将表A和表B都放好顺序。

对于三种连接,我们可以使用提示来强制优化器离开:use_hash、use_nl、use_merge。

Nested Loop Join

1.实施原则

例如:

选择1。*,t2。* fromt1,t2其中t1 . col 1=T2 . col 2;

访问机制如下:

forin(从t1中选择*)循环-t1是驱动表。

forjin(选择* from 2 herecol 2=I . col 1)循环

显示结果;

endloop

endloop

就像嵌套循环。

执行嵌套循环时,首先外循环进入内循环,然后内循环终止。

然后,执行外部循环,然后从外部循环进入内部循环。当外部循环完全终止时,程序结束。

2.步骤如下

A.确定驾驶台

B.将内部表分配给驱动程序表

C.对于从动表的每一行,访问从动表的所有行。

3.实施计划如下

NESTEDLOOPS

外环驱动表

内环

当优化器模式为FIRST_ROWS时,我们经常会发现大量的NESTEDLOOP。

此时,在向用户返回数据时,我们不需要缓存任何数据,这是nestedloop的一大亮点。

使用场景

一般在连接表中有索引,索引选择性好(即选择性接近1)时使用。

也就是说,驱动表的记录集相对较小(10000),内表需要有效的访问方法(Index)。

需要注意的是,JOIN的顺序很重要,驱动表的记录集一定要小,返回结果集的响应时间最快。

5.与指数的关系

嵌套循环和索引就像孪生兄弟,一般需要一起考虑和设计,从优化器的执行机制就可以看出来。

例如,有两个表,一个有10条记录,一个有1000万条记录。

以小表为驱动表,成本为:10*(通过索引查询大表中一条记录的成本)

如果没有1000万大表的索引,那么成本可想而知。

因此,在连接多个表时,要注意被驱动表的连接字段是否需要创建索引。

或者是否需要在表的连接字段和其他约束字段上创建复合索引Sort Merge Join

1.实施原则

选择1。*,t2。* fromt1,t2其中t1 . id=T2 . id;

访问机制如下:

访问t1和orderbyt1_1.id,其中id代表连接字段。

访问t2并按T2 1 . id订购

Joint1_1.id=t2_1.id,依次交替比较合并,不过驱动也没关系。

2.使用场景

虽然是用hashjoin代替sj,但是如果你的服务器的CPU资源和MEM资源非常紧张,建议使用SORTMERGEJOIN。

因为hashjoin比sortmergejoin需要更多的资源。尤其是cpu。

10gsqltuning文档内容如下:

另一方面,sort-mergejoinscanperformabeththanhasjoinifsboth of下列条件是匹配的:

该资源已被删除。

操作不需要完成。

因此,当没有索引并且数据已经排序时,可能会使用sj。以上就是“如何在Oracle数据库中使用散列连接和嵌套循环”一文的全部内容。感谢阅读!相信大家都有一定的了解,希望分享的内容对大家有所帮助。想了解更多知识,请关注行业资讯频道!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/144268.html

(0)

相关推荐

  • 什是多音字吗,多音字“哪”的组词是什么

    技术什是多音字吗,多音字“哪”的组词是什么多音字组词什是多音字吗: 1、[né],是中国古代神话里的神名,组词如下: 哪吒、哪吒糍 2、[nǎ],作疑问词,后面跟名词或数量词,表示要求在所问范围中有所确定,组词如下: 哪

    生活 2021年10月22日
  • java中抽象类和接口的区别(java接口和抽象类有什么不同)

    技术java中抽象类和接口的相同和不同点是什么这篇文章将为大家详细讲解有关java中抽象类和接口的相同和不同点是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。前言下面

    攻略 2021年12月20日
  • 寻找写代码感觉,八)之SpringBoot过滤器的使用

    技术寻找写代码感觉,八)之SpringBoot过滤器的使用 寻找写代码感觉(八)之SpringBoot过滤器的使用一、什么是过滤器
    过滤器是对数据进行过滤,预处理过程,当我们访问网站时,有时候会发布一些

    礼包 2021年10月27日
  • 抖音刷代刷,抖音免费播放量代刷网

    技术抖音刷代刷,抖音免费播放量代刷网抖音刷代刷,抖音免费播放量代刷网
    这样的玩法在抖音也很常见,而且群拍的视频有时候能够进一步带动原视频的传播和扩散。像摩登兄弟、小甜甜的走红,自身的实力和亮点是一方面,但也少不了其他用

    测评 2021年11月13日
  • VB.NET对话框怎么用

    技术VB.NET对话框怎么用这篇文章主要为大家展示了“VB.NET对话框怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB.NET对话框怎么用”这篇文章吧。VB.NET

    攻略 2021年12月2日
  • 小数点英文,1到26的数字译成英文,怎么写

    技术小数点英文,1到26的数字译成英文,怎么写翻译如下小数点英文:1——one2——two3——three4——four5——five6——six7——seven8——eight9——nine10——ten11——ele

    生活 2021年10月28日