于OLTP制,嵌套连接占70%左右,哈希联接占20%,合并排序连接帐户10%。

嵌套连接

算法:嵌套连接从两个表分选出小表为驱动表,大表为被驱动表。先訪问驱动表(仅仅訪问1次)。然后依据驱动表返回的行数多次訪问被驱动表(被驱动表訪问的次数等于驱动表返回的行数)。

依据上面的算法,我们能够知道,想要让嵌套连接性能好。必须同一时候满足下面3个条件:

1)驱动表返回的行数要足够少(降低被驱动表訪问的次数);

2)驱动表的限制条件要有索引(提高訪问驱动表的性能);

3)被驱动表的连接条件要有索引(提高訪问被驱动表的性能)。

前面说过,在OLTP系统中,嵌套连接占了70%,由于OLTP系统返回的数据比較少,非常适合嵌套连接的情形。另一个原因就是,嵌套连接差点儿没有限制。全部的操作都能够用嵌套连接,不像哈希连接和合并排序连接有非常多的限制。

哈希连接

算法:哈希连接是从两个表中选出一个小表作为驱动表,大表为被驱动表。依据驱动表构建哈希表,然后被驱动表的每一行在哈希表中进行哈希匹配。

驱动表和被驱动表各訪问一次。

依据上面的算法我们能够知道。哈希连接仅仅支持等值连接,它的限制最多。

想让哈希连接性能好。必须保证驱动表足够小,使得内存PGA能够放下哈希表。

合并排序连接

算法:合并排序连接是先分别对两个表进行排序,然后再依据排序结果进行比較合并。合并排序连接没有驱动表和被驱动表的概念。
合并排序连接的限制条件非常多。支持><,但不支持like和<>
这样的连接方式最大的性能开销是2次排序,因此在OLTP系统中非常少被用到。

版权声明:本文博主原创文章。博客,未经同意不得转载。

[Oracle] 接线表的更多相关文章

  1. DB2和Oracle区别

    转 http://blog.chinaunix.net/uid-7374279-id-2057574.html 写在前面:今天客户来访(日本人),问我DB2和Oracle区别.因为不是DBA(勉强的理 ...

  2. Oracle【IT实验室】数据库备份与恢复之四:RMAN(备份与恢复管理器)

    RMAN是ORACLE提供的一个备份与恢复的工具,可以用来备份和还原数据库文件. 归档日志和控制文件.它也可以用来执行完全或不完全的数据库恢复. RMAN可以由命令行接口或者 OEM的 Backup ...

  3. Oracle数据库的后备和恢复————关于检查点的一些知识

    当我们使用一个数据库时,总希望数据库的内容是可靠的.正确的,但由于计算机系统的故障(硬件故障.软件故障.网络故障.进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使 ...

  4. Oracle日常维护脚本

    1.正常停库流程     ps -ef|grep LOCAL=NO|cut -c 9-15|xargs kill -9      shutdown immediate; 2.备份数据库     bac ...

  5. oracle学习笔记(转)

    命令行操作:打开服务: services.msc启动Oracle: net start OracleOraHome92TNSListener     net start OracleService实例 ...

  6. ORACLE数据库学习之逻辑结构

     逻辑结构 数据库逻辑结构包含表空间.段.范围(extent).数据块和模式对象. (一)表空间 一个数据库划分为一个或多个逻辑单位,该逻辑单位称为表空间类似于sybase下的设备.(TABLES ...

  7. Oracle与SQLSERVER修改数据文件的路径

    1. SQLSERVER ALTER DATABASE CWBASEMSS modify file (name = cwbasemss_dat ,filename = 'c:\cwdata\mss\C ...

  8. oracle与DB2

    1.体系结构,DB2的实例和数据库分开的做法,我个人还是比较喜欢的,因为实例可以创建多个,数据库的恢复直接恢复到实例下就可以了,相对ORACLE简单多了. 2.管理工具,DB2的管理工具做得太简陋了, ...

  9. oracle与DB2的一些架构

    首先,我们需要理解 Oracle 使用的架构,并理解它与 DB2 的不同之处.图 1 展示了 Oracle 的系统结构.将该图与 图 2 进行比较,后者显示了 DB2 的系统结构.在阅读本文的时候,为 ...

随机推荐

  1. mysql基础: mysql列类型--字符串

    mysql列类型:整型   http://blog.csdn.net/jk110333/article/details/9342283 mysql列类型--时间和日期  http://blog.csd ...

  2. Cocos2dx中Plugin-X 在android下的整合

    直接拉plugin-x中的jar包导入到Eclipse中就可以.用这么麻烦的工具干嘛.

  3. hdu 4707 Pet 2013年ICPC热身赛A题 dfs水题

    题意:linji的仓鼠丢了,他要找回仓鼠,他在房间0放了一块奶酪,按照抓鼠手册所说,这块奶酪可以吸引距离它D的仓鼠,但是仓鼠还是没有出现,现在给出一张关系图,表示各个房间的关系,相邻房间距离为1,而且 ...

  4. c#2解决c#1中的问题之用泛型实现参数化类型

    为什么需要泛型 你手中还有c#1的代码吗?数一数其中的强制转换有多少,特别是那些大量使用集合的代码.几乎每次使用foreach都需要隐式的强制转换.使用那些为不同数据类型而设计的类型,就意味着强制转换 ...

  5. 最想做的三个Delphi项目:Paint,IM,SQL,另外还有Smart,TMS,FMX,UML,FreePascal,Python4Delphi,Cheat Engine

    都是绝美项目- 如果有时间,要做的项目:0. 整整5个Cloud项目(可带来商业收益,其中还包括手机发送, S/D/N/L/NetDriver)1. Heidi/front/SQLITE STUDIO ...

  6. grep命令参数和使用方法

    功能说明:查找符合串的条件的文件. 语言 法国:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>] ...

  7. 2013 吉林通化邀请赛 Tutor 有点坑的水题

    计算12个数的和的平均数.四舍五入,不能有后导0. 我的做法是,将答案算出后,乘以1000,然后看个位是否大于等于5,判断是否要进位…… #include<iostream> #inclu ...

  8. 【机器学习实验】学习Python来分类现实世界的数据

    引入 一个机器能够依据照片来辨别鲜花的品种吗?在机器学习角度,这事实上是一个分类问题.即机器依据不同品种鲜花的数据进行学习.使其能够对未标记的測试图片数据进行分类. 这一小节.我们还是从scikit- ...

  9. fopen()惹的祸

    读一个文件,刚开始只读“r”  打开,读数据,刚开始的一段数据还好,但只读了一小部分就读不到正确的数据了,后来反复的看自己的代码,比对文件的内容,纠结了一天了都,感觉什么都没写错啊.心里总认为是这个文 ...

  10. Enum实现单例模式

    package com.wjy.effective; public enum Singleton { INSTANCE; private int numa; private int numb; pub ...