`
liuliu140
  • 浏览: 6307 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

oracle 分页查询小知识

阅读更多

Oracle分页查询语句基本上可以按照本文给出的格式来进行套用。
Oracle分分页查询格式:

  1. SELECT * FROM  
  2. (  
  3. SELECT A.*, ROWNUM RN  
  4. FROM (SELECT * FROM TABLE_NAME) A  
  5. WHERE ROWNUM <= 40  
  6. )  
  7. WHERE RN >= 21  

其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM <= 40和RN >= 21控制分页查询的每页的范围。

上面给出的这个Oracle分分页查询语句,在大多数情况拥有较高的效率。分页的目的就是控制输出结果集大小,将结果尽快的返回。在上面的分页查询语句中,这种考虑主要体现在WHERE ROWNUM <= 40这句上。

选择第21到40条记录存在两种方法,一种是上面例子中展示的在查询的第二层通过ROWNUM <= 40来控制最大值,在查询的最外层控制最小值。而另一种方式是去掉查询第二层的WHERE ROWNUM <= 40语句,在查询的最外层控制分页的最小值和最大值。查询语句如下:

  1. SELECT * FROM  
  2. (  
  3. SELECT A.*, ROWNUM RN  
  4. FROM (SELECT * FROM TABLE_NAME) A  
  5. )  
  6. WHERE RN BETWEEN 21 AND 40  

对比这两种写法,绝大多数的情况下,第一个查询的效率比第二个高得多。

这是由于CBO 优化模式下,Oracle可以将外层的查询条件推到内层查询中,以提高内层查询的执行效率。对于第一个查询语句,第二层的查询条件WHERE ROWNUM <= 40就可以被Oracle推入到内层查询中,这样Oracle查询的结果一旦超过了ROWNUM限制条件,就终止查询将结果返回了。

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

 

转自http://www.cnblogs.com/zhaotiancheng/p/6262635.html

分享到:
评论

相关推荐

    ORACLE分页查询效率

    根据所提供的信息,我们可以提炼出以下关于“ORACLE分页查询效率”的相关知识点: ### 一、Oracle中的分页查询 #### 1.1 分页查询的重要性 - **背景介绍**:在实际应用中,数据库查询结果往往非常庞大,一次性加载...

    如何解决Oracle分页查询中排序与效率问题

    知识点 1: Oracle 分页查询的基本概念 Oracle 分页查询是指在查询结果中,通过限制行数来实现分页的功能。常用的分页查询方法有两种:ROWNUM 和 OFFSET Fetch。ROWNUM 是 Oracle 专门用于分页查询的伪列,OFFSET ...

    Oracle数据库中很实用的分页查询代码

    分页查询是Oracle数据库比较重要的一个知识点!希望这个对你有参照作用。

    oracle分页查询

    Oracle数据库在处理大数据量时,分页查询是一种非常重要的优化策略,它可以帮助用户按需加载数据,避免一次性加载大量记录导致的性能问题。本主题将详细介绍Oracle中的分页查询,并结合Java和ASP.NET如何调用存储...

    ssh+oracle分页

    在Oracle分页中,Hibernate通过HQL(Hibernate Query Language)或SQL来执行查询,并支持Criteria、Query和Session的Criteria API等方式实现分页。通常,我们会通过设置`setFirstResult`和`setMaxResults`方法来指定...

    oracle分页查询sql

    ### Oracle 分页查询 SQL 在 Oracle 数据库管理中,实现数据的有效分页是非常重要的功能之一。这不仅可以提高数据处理效率,还可以改善用户界面的响应速度。分页查询是指从数据库中检索特定范围内的记录,通常用于...

    SSH+ORACLE通用分页

    在Oracle数据库中,进行分页查询通常涉及SQL的`ROWNUM`或`ROW_NUMBER()`函数,以及子查询或嵌套查询。`ROWNUM`在早期版本的Oracle中被广泛使用,它会为每行数据分配一个唯一的数字,通过与特定范围的比较来获取指定...

    oracle分页程序的实现

    以下将详细介绍Oracle数据库中实现分页查询的方法以及相关知识点。 在Oracle数据库中,常见的分页查询方法有ROWNUM和ROW_NUMBER()函数,以及使用子查询和连接操作来实现分页。 1. ROWNUM方法: ROWNUM是Oracle中的...

    oracle分页案例

    Oracle数据库在处理大数据量时,分页查询是一种非常常见的优化策略。它允许用户按需加载数据,而不是一次性加载所有记录,从而提高了应用性能并减轻了服务器负担。本案例将详细介绍Oracle数据库中的分页查询实现方法...

    Oracle-C#分页控件

    Oracle-C#分页控件是将Oracle数据库与C#编程语言结合,实现数据查询和展示时的分页功能。在Windows应用程序(Winform)开发中,分页是必不可少的一个特性,尤其是在处理大量数据时,它能提高应用性能,提供更好的...

    oracle sql分页语句

    Oracle SQL分页语句是数据库查询中的一个重要概念,它允许我们从海量数据中按需获取特定范围的结果,比如第一页、第二页等。在Oracle数据库系统中,实现分页查询通常使用ROWNUM伪列或者结合RANK()、DENSE_RANK()、...

    oracle分页存储过程

    下面我们将详细探讨Oracle分页存储过程的相关知识点。 一、Oracle分页查询原理 在Oracle中,实现分页查询通常使用ROWNUM伪列。ROWNUM是在查询结果集生成时自动分配的一个整数值,表示每行在结果集中的位置。通过...

    myeclise+oracle分页

    【标题】"myeclipse+oracle分页"涉及的关键知识点主要集中在两个方面:MyEclipse集成开发环境和Oracle数据库的分页查询技术。下面将详细阐述这两个方面的内容。 首先,MyEclipse是一款强大的Java集成开发环境(IDE...

    kettle oracle循环分页迁移数据的完整例子,生成txt后FTP上传到远程服务器

    【标题】"kettle oracle循环分页迁移数据的完整例子,生成txt后FTP上传到远程服务器"揭示了几个关键的IT知识点,主要包括: 1. **Kettle(Pentaho Data Integration,PDI)**:Kettle是一款开源的数据集成工具,...

    Oracle 分页存储过程

    本文将深入解析一个Oracle分页存储过程的设计思想与具体实现方法。该存储过程通过输入参数控制每页显示的记录数,并返回指定页面的数据,同时提供了总记录数和总页数等信息。 #### 知识点二:存储过程定义与结构...

    oracle分页 排序

    ### Oracle分页与排序知识点详解 #### 一、Oracle分页查询原理及应用 在Oracle数据库中,实现分页查询通常依赖于`ROWNUM`伪列。`ROWNUM`为每一行分配一个唯一的行号,从1开始递增。利用这一特性,我们可以有效地...

    Oracle存储过程分页

    ### Oracle存储过程分页知识点详解 #### 一、Oracle存储过程分页原理及实现方法 在Oracle数据库中,实现分页查询通常有两种方法:一种是使用`ROWNUM`伪列,另一种则是通过存储过程实现。其中,使用存储过程进行...

    Oracle真分页。源码

    Oracle数据库在处理大数据量时,分页查询是一个重要的性能优化手段。传统的ROWNUM分页方式在某些场景下可能无法满足需求,特别是在数据量过大或需要跨多行进行排序时,会出现效率低下甚至错误的结果。因此,“Oracle...

    Oracle分页技术

    以下是一些关于Oracle分页技术的关键知识点: 1. **ROWNUM伪列**:ROWNUM伪列是在查询执行时由Oracle自动为每一行生成的一个整数,表示行的顺序。在分页查询中,我们可以利用ROWNUM来限制返回的行数,例如`WHERE ...

    VC查询Oracle数据(包括存储过程、分页查询)

    通过以上技术,开发者可以在VC++环境中高效地查询Oracle数据库,执行存储过程,并实现分页显示大量数据的功能。在实际开发中,还需要根据具体项目需求,考虑并发控制、安全性、代码复用等多方面因素,确保应用的稳定...

Global site tag (gtag.js) - Google Analytics