于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. 一起来开发Android的天气软件(三)——使用Volley实现网络通信

    距离上一篇一起来开发Android天气软件二的时间又将近半个月了,之间一直由于有事而没有更新实在抱歉,近期会加快更新的步伐.争取在2015年到来前写完这系列的博文,上一章我们已经使用LitePal框架 ...

  2. C++ Map 容器

    1.Map是c++的一个标准容器,它提供了很好一对一的关系. Map是一种关联是容器,在map中增加和删除元素非常容易.可以修改一个特定的节点而不对其他节点不产生影响,由于map是一种关联式容器,Ke ...

  3. Jenkins: 使用Jenkins搭建持续集成(CI)环境

    http://www.cnitblog.com/luckydmz/archive/2012/01/03/77007.html 首先从官网http://jenkins-ci.org/下载 Java We ...

  4. Spring MVC 数据验证——validate注解方式

    1.说明 学习注解方式之前,应该先学习一下编码方式的spring注入.这样便于理解验证框架的工作原理.在出错的时候,也能更好的解决这个问题.所以本次博客教程也是基于编码方式.仅仅是在原来的基础加上注解 ...

  5. HttpWeb服务器之--用OO方式写

    虽然写的不是很好,但 最终解释权以及版权归13东倍所有! package com.web; import java.io.IOException; public class Test { public ...

  6. C++异常中的堆栈跟踪

    C++语言的运行时环境是基于栈的环境,堆栈跟踪(trace stack)就是程序运行时能够跟踪并打印所调用的函数.变量及返回地址等,C++异常中的堆栈跟踪就是当程序抛出异常时,能够把导致抛出异常的语句 ...

  7. Wi-Fi万能钥匙:说是破解,其实有危险(转)

    Wi-Fi 万能钥匙如此危险,怎样做才能让这种可能严重侵害公众利益的 app 在中国消失? 这个“钥匙”为什么能够破解 Wi-Fi?它真的是“破解” Wi-Fi 吗?两年前我就有这个疑问了,原谅我对一 ...

  8. OCP读书笔记(4) - 配置备份设置

    4.Configuring Backup Settings 查看RMAN持久化设置 [oracle@easthome ~]$ rman target / RMAN> show all; SQL& ...

  9. Merging a WPF application into a single EXE(WPF应用程序合并成单个Exe文件)

    I always dislike handing off little applications to people. Not because I can’t, but because of the ...

  10. hdu1251(Trie树)

    传送门:统计难题 分析:Trie树入门题,随便写写练下手感,统计每个节点被多少单词经过就可以了. #include <iostream> #include <cstdio> # ...