`
winzenghua
  • 浏览: 1327124 次
  • 性别: Icon_minigender_2
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

表连接方式及使用场合

阅读更多

表连接方式及使用场合

NESTED LOOP

对于被连接的数据子集较小的情况,nested loop连接是个较好的选择。nested loop就是扫描一个表,每读到一条记录,就根据索引去另一个表里面查找,没有索引一般就不会是 nested loops。

一般在nested loop中, 驱动表满足条件结果集不大,被驱动表的连接字段要有索引,这样就走nested loop。如果驱动表返回记录太多,就不适合nested loops了。如果连接字段没有索引,则适合走hash join,因为不需要索引。

可用ordered提示来改变CBO默认的驱动表,可用USE_NL(table_name1 table_name2)提示来强制使用nested loop。

HASH JOIN

hash join是CBO 做大数据集连接时的常用方式。优化器扫描小表(或数据源),利用连接键(也就是根据连接字段计算hash 值)在内存中建立hash表,然后扫描大表,每读到一条记录就来探测hash表一次,找出与hash表匹配的行。

当小表可以全部放入内存中,其成本接近全表扫描两个表的成本之和。如果表很大不能完全放入内存,这时优化器会将它分割成若干不同的分区,不能放入内存的部分就把该分区写入磁盘的临时段,此时要有较大的临时段从而尽量提高I/O 的性能。临时段中的分区都需要换进内存做hash join。这时候成本接近于全表扫描小表+分区数*全表扫描大表的代价和。

至于两个表都进行分区,其好处是可以使用parallel query,就是多个进程同时对不同的分区进行join,然后再合并。但是复杂。

使用hash join时,HASH_AREA_SIZE初始化参数必须足够的大,如果是9i,Oracle建议使用SQL工作区自动管理,设置WORKAREA_SIZE_POLICY 为AUTO,然后调整PGA_AGGREGATE_TARGET即可。

以下条件下hash join可能有优势:

两个巨大的表之间的连接。

在一个巨大的表和一个小表之间的连接。

可用ordered提示来改变CBO默认的驱动表,可用USE_HASH(table_name1 table_name2)提示来强制使用hash join。

SORT MERGE JOIN

sort merge join的操作通常分三步:对连接的每个表做table access full;对table access full的结果进行排序;进行merge join对排序结果进行合并。sort merge join性能开销几乎都在前两步。一般是在没有索引的情况下,9i开始已经很少出现了,因为其排序成本高,大多为hash join替代了。

通常情况下hash join的效果都比sort merge join要好,然而如果行源已经被排过序,在执行sort merge join时不需要再排序了,这时sort merge join的性能会优于hash join。

在全表扫描比索引范围扫描再通过rowid进行表访问更可取的情况下,sort merge join会比nested loops性能更佳。

可用USE_MERGE(table_name1 table_name2)提示强制使用sort merge join

分享到:
评论

相关推荐

    基础电子中的连接器不同场合的应用安装方式

     电缆内导体与连接器内导体焊接,这种连接方式最为稳定可靠,也最常用。  2)。插入式  这种安装方式是在电缆内导体上开孔,并且切槽,如插孔一样,电缆内导体插入,这种安装方法比较简单,安装迅速,不需要...

    连接器不同场合的应用安装方式

     电缆内导体与连接器内导体焊接,这种连接方式为稳定可靠,也常用。  2)。插入式  这种安装方式是在电缆内导体上开孔,并且切槽,如插孔一样,电缆内导体插入,这种安装方法比较简单,安装迅速,不需要特殊的...

    实验三 原理图连接工具使用.docx

    1、电气连接方式 (1) 利用导线直接相连完成电气连接。放置/线(Place/wire)。对线进行颜色、线宽、延伸、缩短、拐点的插入或删除等操作练习,在放置线过程中,Shift + Space 键 来切换导线的拐弯模式 (2)利用...

    电子器件选型-电源及信号连接器选型规范.doc

    8. 连接方式的定义需要有一定的规律,通常要求一一对应连接。 9. 所使用的材料是否含铅; 10. Header的焊接温度是否能满足焊接的要求(含铅要求Max 230℃.10s,不含铅要求Max 250℃ 5s;能否使用液体洗剂清洗或...

    【工程师必备】LED灯珠常用的连接方式及其故障排查

    由于目前LED的功率和亮度还不是很高,而实际使用场合通常需要平面发光,因此需要将多个LED按照需要排列组合起来,以满足较大范围、较高亮度、动态显示、色彩变换等应用要求及LED与配套驱动器之间的匹配要求。...

    ITT Cannon连接器能可靠运行于极端场合

    该产品采用卡口式连接方式,具有4种标准规格:配电盘输出、配电盘输入、线路输出、线路输入,输出连接器采用插头连接,带有可指捏的坚硬凸起和插槽以便锁紧;输入连接器采用插座连接,带有可指捏的弹性凸起和一个...

    永湖泵站串行通信设备的集中管理设计.pdf

    直接连接和间接集中管理两种常用连接方式,并比较了两种连接方式的适用场合。针对该泵 站现场串口设备多的特点,提出了间接集中管理连接方式在深圳市东江水源工程永湖泵站中 的运用,泵站监控PLC通过嵌入式通信...

    LED灯珠的连接方式及故障排查

     由于目前LED的功率和亮度还不是很高,而实际使用场合通常需要平面发光,因此需要将多个LED按照需要排列组合起来,以满足较大范围、较高亮度、动态显示、色彩变换等应用要求及LED与配套驱动器之间的匹配要求。...

    GPS相关信息,室内测试专用,设备连接

    一、使用场合: 在一些特殊环境下不能直接接收GPS信号(例如:隧道、地下车库、大型封闭仓库室内、生产车间等各种卫星定位产品的安装、调试等)而又需要使用GPS信号,可通过此设备实施GPS信号覆盖。 二、组成...

    Keil C51语言使用技巧及实战, (带书签pdf, 阅读起来就是爽,不是精品我不发)

    Keil C51语言使用技巧及实战_周立功书籍 ---------------------------------- PDF文件,带书签功能,阅读非常方便,不是精品我不发. -----------目录------------------- 介绍 第一章 硬件 1 概述 2存储区结构 2.1 ...

    新型电导率表的设计与研制

    目前电导率表存在稳定性差、精度低、功耗大、数据传输...该仪器可以连接不同类型的电极探头,并具有灵活的通信方式。软件设计考虑了干扰误差和温度补偿。该电导率表可以用于各类电导率的测量场合,具有广阔的应用前景。

    socket网络编程服务端程序支持多客户端

    1.采用重叠I/O方式实现的...3.可以使用在各种场合用于监控网络数据。4.代码封装成库形式,非常方便移植。5.本程序使用到了多线程技术,互斥同步线程技术,同时支持多通道连接技术,非常经典,程序注释完整,思路清晰。

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    其三、职业方向多:Oracle数据库管理方向、Oracle开发及系统架构方向、Oracle数据建模数据仓库等方向。 四、 如何学习 认真听课、多思考问题、多动手操作、有问题一定要问、多参与讨论、多帮组同学 五、 体系结构 ...

    用MOS管防止电源反接的原理.zip_MOS管 反接_mos_mos管连接方式_反接_用MOS管防止电源反接的原理

    很多场合需要增加电源反接保护,该文档列出针对小功率的反接保护,成本低廉

    BLE_Mesh文档

    当我们谈到蓝牙的连接方式的时候,我们自然而然的会想到耳机应用,这是一个非常典型的点对点的应用(Point-to-Point)。大部分的蓝牙和蓝牙LE的设备都是用这种简单的点对点的通讯方式。在蓝牙的核心标准里(core ...

    揭秘LED常用的几大连接方式及故障排查

    由于目前LED的功率和亮度还不是很高,而实际使用场合通常需要平面发光,因此需要将多个LED按照需要排列组合起来。

    基于单片机的秒表课程设计.doc

    LED数码显示器有如下两种连接方法:共阳极接法:把发光二极管的阳极连在一起构成公 共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。共阴极 接法:把发光二极管的阴极连在一起构成公共...

    AM2322数字温湿度传感器是一款含有己校准数字信号输出的温湿度复合型传感器

    两种通信方式都采用直接输出经温度补偿后的湿度、温度及校验CRC等数字信息,用户无需对数字输出进行二次计算,也无需要对湿度进行温度补偿,便可得到准确的温湿度信息。两种通信方式可自由切换,用户可自由选择,...

Global site tag (gtag.js) - Google Analytics