专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

oracle数据库怎么嵌套多重循环_数据库

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/5 16:03:38       共计:3580 浏览

oracle数据库怎么嵌套多重循环?

1、嵌套循环链接(USE_NL)

主要消耗的相关资源:CPU,磁盘I/O

特点:在网上看到很多关于这方面的帖子,说小表作为驱动表,其实这种说话不完全正确,其实带条件的大表返回较少行的结果集也可以作为驱动表(外部表)。此表连接在当有高选择性索引或进行限制性搜索时候效率较高,可以快速返回第一次的搜索结果。

缺点:当索引丢失或查询条件限制不够时,效率很低。

2、排序合并连接(USE_MERGE)

主要消耗的相关资源:内存,临时表空间

特点:在排序合并连接中,ORACLE分别将第一个源表、第二个源表按他们各自要连接的列排序,然后将两个已经排序的源表合并。由于没有索引,排序合并连接在合并两表钱将强制对他们进行排序,两表都需要进行全表扫描,所以表名在FROM自居中出现的次序并不重要。当缺乏索引或搜索条件模糊时,该类型的连接比嵌套循环连接更加有效。

缺点:所有表都需要排序,它为最优化的吞吐量而设计,并且在结果没有全部找到之前不返回数据。

3、散列连接(USE_HASH)

主要消耗的相关资源:内存,临时表空间

特点:在散列连接中,ORACLE访问第一张表(通常是连接结果中较小的表),并且在内存中建立一张基于连接键的散列表,然后他扫描另外一张表(较大的表),并根据散列表检测是否有匹配的记录。当缺乏索引或搜索条件模糊时,该类型的连接比嵌套循环连接更加有效。通常比排序合并连接更快。

缺点:为建立散列表,需要大量的内存,第一次结果返回慢,如果在磁盘上操作,速度将更慢

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:mysql 参数查询,影响MySQL性能的五大配置参数_数据库 | ·下一条:mysql 查询锁表,update会自己加锁吗_数据库

Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有