版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1.1.1 嵌套循环连接在嵌套循环连接中,Oracle从第一个行源中读取第一行,然后和第二个行源中的数据进行对比。所有匹配的记录放在结果集中,然后Oracle将读取第一个行源中的下一行。按这种方式直至第一个数据源中的所在行都经过处理。第一个记录源通常称为外部表,或者驱动表,相应的第二个行源称为内部表。使用嵌套循环连接是一种从连接结果中提取第一批记录的最快速的方法。在驱动行源表(就是您正在查找的记录)较小、或者内部行源表已连接的列有惟一的索引或高度可选的非惟一索引时,嵌套循环连接效果是比较理想的。嵌套循环连接比其他连接方法有优势,它可以快速地从结果集中提取第一批记录,而不用等待整个结果集完全确定
2、下来。这样,在理想情况下,终端用户就可以通过查询屏幕查看第一批记录,而在同时读取其他记录。不管如何定义连接的条件或者模式,任何两行记录源可以使用嵌套循环连接,所以嵌套循环连接是非常灵活的。然而,如果内部行源表(读取的第二张表)已连接的列上不包含索引,或者索引不是高度可选时,嵌套循环连接效率是很低的。如果驱动行源表(从驱动表中提取的记录)非常庞大时,其他的连接方法可能更加有效。图1-1说明了程序清单1-1中查询执行的方法。select/+ordered/ename,dept.deptnofromdept,empwheredept.deptno=emp.deptnoDESCRIPTIONDEPTI
3、TOJd山aTECHWRITER10MIK20HR30城dOEIMEDEPTFOGALLOWAY10DULLEY20E田REITER30TAYLOR20HATHAWAY20prevatt30返回i个记录WENAMEDEFTNO赌融环连接直到DEPT表中的DE?字段的所有值都与EMP表中的记录相比较后,储环才会停止+后面的萱询结果如下所示(对应于DEFTMO的20.30和40):第2个循环返回34记录EMAJ庄DEF7WDULLEY20TAYLOR20HATHAWAY20第3个循环返回2个记录EMIEDEFTWEEIIER30FREVATT30第4个循印未返回记录10GALLOW图1-1嵌套循环
4、连接查询图1.1.2 排列合并连接在排列合弁连接中,Oracle分别将第一个源表、第二个源表按它们各自要连接的列排序,然后将两个已经排序的源表合弁。如果找到匹配的数据,就放到结果集中。在缺乏数据的选择性或者可用的索引时,或者两个源表都过于庞大(超过记录数的5%)日,排序合弁连接将比嵌套循环连更加高效。但是,排列合弁连接只能用于等价连接(WHERED.deptno=E.dejptno,而不是WHERED.deptno>=E.deptno)。排列合弁连接需要临时的内存块,以用于排序(如果SORT_AREA_SIZE置得太小的话)。这将导致在临时表空间占用更多的内存和磁盘I/O。图1-2解释了
5、程序清单1-2查询执行的方法。select/*+ordered*/ename,dept.deptnofromemp,deptwheredept.deptno=emp.deptno1.1.3 哈希连接当内存能够提供足够的空间时,哈希(HASH旌接是Oracle优化器通常的选择。在哈希连接中,Oracle访问一张表(通常是较大的表),弁在内存中建立一张基于连接键的哈希表。然后它扫描连接中其他的表(通常是较大的表),弁根据哈希表检测是否有匹配的记录。只有在数据库初始化参数HASH_JOIN_ENABLED为True,弁且为参数PGA_AGGREGATE_TAR铤量了一个足够大的值的时候,Oracle
6、才会使用哈希边连接(HASH_AREA_SIZ是向下兼容的参数,但在Oracle9i之前的版本中应当使用HASH_AREA_SIZE这和嵌套循环连接有点类似一一Oracle先建立一张哈希表以利于操作进行。当使用ORDERE提示时,FROM子句中的第一张表将用于建立哈希表。当缺少有用的索引时,哈希连接比嵌套循环连接更加有效。哈希连接可能比排序合并连接更快,因为在这种情况下只有一张源表需要排序。哈希连接也可能比嵌套循环连接更快,因为处理内存中的哈希表比检索B树索引更加迅速。和排序合并连接、群集连接一样,哈希连接只能用于等价连接。和排序合并连接一样,哈希连接使用内存资源,并且当用于排序内存不足时,会
7、增加临时表空间的I/O(这将使这种连接方法速度变得极慢)。最后,只有基于代价的优化器才可以使用哈希连接。图1-3解释了执行程序清单1-3查询的方法。select/*+ordered*/ename,dept.deptnofromemp,deptwheredept.deptno=emp.deptno1-在内存中为EMP表陶建至一个哈希表ENM皿dep)GALLOWAY10*DULLEY20U1REITERSOTAYLOR2CiHATHAWAY20FREVATT30返回1个记录GALLOWAYID直到DEPT表中街个(如果电讽且即4_5工况足够大)2.从DEMFT中取出每个记录并与HASH表位比较:
8、DEPTH。值都与EMP表中相比较后,循环胃合停止.后面的查询结果如下所示(对由于DEPTNO中的20,30,40)第2个循环返回3个记录EWAMEDEPTNODULLEY20TAYLOR20HATHAWAY20第3个循环返回2个记录ENAMEDEFTIjOREITER30PREVATT30图1-3哈希连接查询图1.1.4索引连接在Oracle8i之前,您必须访问表第4个循环未返回记录直到索引包含了所有需要的信息。从Oracle8i起,如果一组已存在的索引包含了查询所需要的所有信息,那么优化器将在索引中有选择地生成一组哈希表。可通过范围或者快速全局扫描访问到每一个索引,而选择何种扫描方式取决于WHER子句中的可有条件。在一张表有大量的列,而您只想访问有限的列时,这种方法非常有效。WHERE句约束条件越多,执行速度越快。因为优化器在评估执行查询的优化路径时,将把约束条件作为选项看待。您必须在合适的列(那些满足整个查询的列)上建立索引,这样可以确保优化器将索引连接作为可选项之一。这个任务通常牵涉到在没有索引,或者以前没有建立联合索引的列上增加索引。相对于快速全局扫描,连接索引的优势在于:快速全局扫描只有一个单一索引满足整个查询。索引连接可以有多个索引满足整个查询。程序清单1-4中的两个索引(一个在EN
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版无息投资借款合同书示例3篇
- 2025版房地产项目土方挖填施工合同范本2篇
- 2025年度个人带车库带私人泳池房产交易合同
- 2025年全球及中国桡动脉止血器行业头部企业市场占有率及排名调研报告
- 2025年全球及中国多功能推车行业头部企业市场占有率及排名调研报告
- 2025年全球及中国液槽密封式高效送风口行业头部企业市场占有率及排名调研报告
- 2025-2030全球流程行业无线自动化行业调研及趋势分析报告
- 2025-2030全球并网型微型逆变器行业调研及趋势分析报告
- 2024年煤矿企业安全生产知识竞赛试题库及答案(共200题)
- 2025版智慧医疗项目共同垫资合作协议书3篇
- 2025年度厨师职业培训学院合作办学合同4篇
- 《组织行为学》第1章-组织行为学概述
- 2024年山东省泰安市高考物理一模试卷(含详细答案解析)
- 护理指南手术器械台摆放
- 肿瘤患者管理
- 2025年中国航空部附件维修行业市场竞争格局、行业政策及需求规模预测报告
- 2025春夏运动户外行业趋势白皮书
- 《法制宣传之盗窃罪》课件
- 窒息的急救解读课件
- 下腔静脉滤器置入术共27张课件
- 人教小学四年级上册数学知识点归纳
评论
0/150
提交评论