千家信息网

Oracle分页查询的示例分析

发表于:2024-12-01 作者:千家信息网编辑
千家信息网最后更新 2024年12月01日,这篇文章主要介绍Oracle分页查询的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Oracle分页查询的实例详解1.Oracle分页查询:SELECT * FROM
千家信息网最后更新 2024年12月01日Oracle分页查询的示例分析

这篇文章主要介绍Oracle分页查询的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

Oracle分页查询的实例详解

1.Oracle分页查询:

SELECT * FROM ( SELECT A.*, ROWNUM RN FROM     (SELECT * FROM tab) A     WHERE ROWNUM <= 40 )        WHERE RN >= 21;

这个分页比下面的执行时间少,效率高。

2.

select * from     (select c.*,rownum rn from tab c) where rn between 21 and 40

对比这两种写法,绝大多数的情况下,第一个查询的效率比第二个高得多。这是由于CBO优化模式下,Oracle可以将外层的查询条件推到内层查询中,以提高内层查询的执行效率。对于第一个查询语句,第二层的查询条件WHERE ROWNUM <= 40就可以被Oracle推入到内层查询中,这样Oracle查询的结果一旦超过了ROWNUM限制条件,就终止查询将结果返回了。
而第二个查询语句,由于查询条件BETWEEN 21 AND 40是存在于查询的第三层,而Oracle无法将第三层的查询条件推到最内层(即使推到最内层也没有意义,因为最内层查询不知道RN代表什么)。】因此,对于第二个查询语句,
Oracle最内层返回给中间层的是所有满足条件的数据,而中间层返回给最外层的也是所有数据。数据的过滤在最外层完成,
显然这个效率要比第一个查询低得多。

上面分析的查询不仅仅是针对单表的简单查询,对于最内层查询是复杂的多表联合查询或最内层查询包含排序的情况一样有效。

3.下面简单讨论一下多表联合的情况。对于最常见的等值表连接查询,CBO一般可能会采用两种连接方式

NESTED LOOP和HASH JOIN(MERGE JOIN效率比HASH JOIN效率低,一般CBO不会考虑)。
在这里,由于使用了分页,因此指定了一个返回的最大记录数,NESTED LOOP在返回记录数超过最大值时
可以马上停止并将结果返回给中间层,而HASH JOIN必须处理完所有结果集(MERGE JOIN也是)。
那么在大部分的情况下,对于Oracle分页查询选择NESTED LOOP作为查询的连接方法具有较高的效率
(分页查询的时候绝大部分的情况是查询前几页的数据,越靠后面的页数访问几率越小)。

SELECT /*+FIRST_ROWS*/ * FROM     ---hint 提示,优化查询( SELECT A.*, ROWNUM RN FROM     (SELECT * FROM tab) A     WHERE ROWNUM <= 400 )        WHERE RN >= 380

以上是"Oracle分页查询的示例分析"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

查询 内层 效率 条件 情况 数据 结果 分析 中间层 外层 语句 示例 最大 内容 篇文章 联合 复杂 有效 不仅仅 二层 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 宁海计算机软件开发服务 企业服务器操作系统排行 北京服装打版软件开发公司 西安交通大学网络安全导师 类似液位仪app软件开发 威海戴尔服务器代理哪家服务好 孤岛惊魂4为什么老是服务器丢失 江苏工业软件开发定制 成都免费培训软件开发 辐射76公测服务器 泰拉瑞亚pc怎么开服务器视频 自己组装的服务器怎么样 女生学网络技术有用吗 网络安全法用背不 有关网络安全的表述是什么 什么是网络安全生物安全 博思德g6000怎么设置数据库 软件开发新员工工作评语和建议 黄石网络安全检查网站 网络安全周2017时间 软件开发是不是必须要备案 巴中服务器租用厂家 我的世界服务器建立公会 怎么在数据库里创建一个库 自动化专业PK网络安全 网络技术与网络应用的区别 软件开发面试需要穿正装吗 在数据库中导航条可以新增记录吗 银川市网络安全知识竞赛 剑侠世界3海外无法连接服务器
0