`
362217990
  • 浏览: 51699 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

最新+最简单Oracle分页查询法

阅读更多
这两天在学习Oracle数据,下载了韩顺平的玩转ORACLE视频,感觉讲的还不错,
可能是我以前用个mysql和SQLServer的原因,听起来很容易懂。
别扯远了,回到正题吧。呵呵
  我看到Oracle分页的时候,韩老师也说这是最简单最常用的一种。
   
      select * from (select a1.*,rownum rn from(select * from emp) a1 where rownum<=10) where rn>=6;
    

   我感觉非常麻烦,还要3个子查询。
     其实大家也知道子查询的效率是非常慢的, 能不用子查询就尽量不要用。

     我研究了下,结果感觉比上面那个要简单很多,只需要2个子查询
 
	select * from (select e.*,rownum rn from emp e) a1 where a1.rn between 6 and 10;
  


   两种查找的效果都是一样的。

   但是我感觉这样确实不错,简单方便,可读性也更高,新手更容易看懂,
   查询效率按道理来说应该是上面那个更快。
    如果大家有什么意见和建议都可以跟我交流下。
分享到:
评论
14 楼 mayufenga1 2010-01-25  
还是第一种是对的,第2种有性能问题,真的,如何在加上order by,你就知道啦
13 楼 xinshou 2009-12-10  
对oracle不是很熟,这种查找是不是主键是连续的?
12 楼 redish 2009-12-07  
/**
	 * Oracle 分页sql语句生成方法
	 * @param sql sql语句
	 * @param pageIndex 页下标
	 * @param pageSize 页面大小
	 * @return
	 */
   public  static String createOraclePagingSql(String sql, int pageIndex, int pageSize){
	   int m = (pageIndex-1) * pageSize; 
       int n = m + pageSize; 
	   StringBuffer pagingSelect = new StringBuffer(100); 
	   pagingSelect.append("select * from ( select row_.*, rownum rownum_ from ( ")
	   .append(sql) 
	   .append(" ) row_ where rownum <=")
	   .append(n)
	   .append(") where rownum_ >")
	   .append(n); 	   
	   return pagingSelect.toString(); 	
   }

11 楼 redish 2009-12-07  
误导别人,很明显第一种的好。
10 楼 zwq4166506 2009-11-02  
chensunhao 写道
一般都是第二种,效率要高些

别误导新人,在百万级数据查询,第二种会等死人,比第一种慢差不多10倍
9 楼 myworkfirst 2009-10-28  
coolbaby1984514 写道
第一种比第二种效率高
在数据量少的情况下  差别不是很大
一旦数据量大的话  第二种分页很废时间
同样100W条数据 第一个方法施行时间是0.125秒
第2个是 3.015秒
另外 告诉lz 下 between and 少用  效率慢 不如用> <

  非常正确
8 楼 l250707449 2009-10-28  
<p>select * from (select e.*,rownum rn from (<strong><span style="color: #ff0000;">select * from emp</span></strong>) e) a1 where a1.rn &gt; 6 and a1.rn  &lt; 10;   </p>
<p> </p>
<p>觉得这样写比较好 </p>
<p> </p>
<p>这样<span style="color: #000000;"><strong>select * from emp 就可以独立出来 不依赖于sql 语句  不用每个都带</strong>rownum</span><span style="color: #000000;">  </span></p>
<p> </p>
<p>也好维护</p>
<p> </p>
7 楼 leejon 2009-10-27  
貌似我之前在oracle中,写个分页排序的sql查询了三个集合然后再用集合的操作才搞定。
看来我还没到火候,呵呵。
6 楼 gstripe 2009-10-27  
用第一种啦
你试着去Hibernate那弄出他提交到的oracle时产生的分页语句
就知道了
5 楼 akunamotata 2009-10-26  
韩顺平的我也看过,讲的太白话啦,不过说的很不错!

还有内联,外联少用...效率低...
4 楼 coolbaby1984514 2009-10-26  
第一种比第二种效率高
在数据量少的情况下  差别不是很大
一旦数据量大的话  第二种分页很废时间
同样100W条数据 第一个方法施行时间是0.125秒
第2个是 3.015秒
另外 告诉lz 下 between and 少用  效率慢 不如用> <
3 楼 chensunhao 2009-10-16  
一般都是第二种,效率要高些
2 楼 362217990 2009-10-16  
myy 写道
http://www.iteye.com/topic/9681?page=1

什么意思 ??
1 楼 myy 2009-10-15  
http://www.iteye.com/topic/9681?page=1

相关推荐

    sturts+oracle+jdbc实现分页

    在IT行业中,数据库管理和数据检索是至关重要的环节,...通过编写Action类处理请求,利用Oracle的ROWNUM进行分页查询,并通过JDBC接口与数据库交互,最后通过分页模型类管理和展示数据,从而实现高效、易用的分页功能。

    初学者写留言本,带分页的java+servlet+oracle!

    【初学者写留言本,带分页的java+servlet+oracle!】 在IT行业中,开发一个留言本系统是初学者入门Web开发的经典实践项目。这个项目涵盖了Java、Servlet和Oracle数据库这三个关键组件,它们共同构建了一个功能完善的...

    Oracle&JSP分页和Oracle分页

    本文将详细讲解如何在Oracle数据库中进行分页查询,并结合JSP实现前端展示。 首先,了解Oracle数据库中的分页。Oracle提供了一种名为ROWNUM的伪列,它会为每一行返回一个唯一的数字,从1开始递增。通过ROWNUM,我们...

    jsp + oracle分页简单实用

    此方法利用了JDBC(Java Database Connectivity)2.0标准进行数据库连接与查询,并通过简单的逻辑实现了网页上的数据分页功能。这种方法不仅适用于展示大量数据时提高用户体验,而且对于初学者来说也相对容易理解和...

    Oracle分页+.cs代码+存储过程+Aspnetpager分页控件

    本资源包含Oracle分页的`.cs`代码、存储过程以及Aspnetpager分页控件的使用示例,旨在帮助开发者理解和应用这些技术。 首先,我们来探讨Oracle中的分页查询。Oracle数据库支持多种分页方法,其中一种是通过ROWNUM伪...

    JSP+JDBC_真分页(基于Oracle数据库分页)笔记

    Oracle可以使用ROWNUM伪列配合查询来实现分页。然而,这种方式的可移植性较差,因为不同的数据库系统可能有不同的分页语法,如MySQL中的`LIMIT`关键字。 #### **任务1:假分页** 在这个阶段,我们创建了一个简单的...

    jsp+oracle常用分页功能

    1. 基础分页:展示最简单的分页实现,只包含上一页和下一页功能。 2. 动态设置每页记录数:允许用户自定义每页显示的记录数量。 3. 页码导航:除了上下翻页,还提供页码列表,让用户直接跳转到指定页。 4. 总记录数...

    oracle分页查询sql

    在 Oracle 中,可以通过 `ROWNUM` 函数来实现简单的分页查询。下面是一段典型的分页查询 SQL 语句: ```sql SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM ) WHERE ...

    oracle 分页完整代码

    在Oracle数据库中,分页查询是一项非常常见的操作,特别是在处理大量数据时,为了提高用户体验,我们需要将结果集分块加载,这就是所谓的分页。在这个Java和Oracle结合的分页实现中,我们将探讨如何通过Java后端配合...

    oracle 分页语句

    ### Oracle分页查询详解 在Oracle数据库中,实现分页查询是常见的需求之一。通过合理的分页查询可以提高数据检索的效率,优化用户体验。本文将详细介绍一个特定的Oracle分页查询语句:“`select * from (select a.*...

    oracle分页查询

    ### Oracle分页查询详解 #### 一、Oracle分页查询基础 在Oracle数据库中,分页查询是一项常用的技术,主要用于处理大数据量时的查询需求,能够有效地减少每次查询返回的数据量,提高系统的响应速度和用户体验。 ##...

    Oracle分页查询Oracle分页查询

    ### Oracle分页查询详解 #### 一、引言 在数据库应用中,为了提高用户体验以及减少服务器负担,分页查询成为了一种常见的数据检索技术。Oracle作为一种广泛使用的数据库管理系统,支持多种方式进行分页查询。本文...

    Oracle分页详解

    ### Oracle分页详解 在数据库应用开发中,为了提高用户体验并优化系统性能,分页查询是一种常见的技术手段。本文将详细介绍如何在Oracle数据库中实现高效、灵活的分页功能。 #### 一、Oracle分页原理 Oracle中的...

    java连接Oracle分页显示

    1. **ROWNUM分页**:Oracle中的ROWNUM伪列可以用来实现简单的分页。它会为每一行返回的数据赋予一个唯一的数字,从1开始递增。例如,如果我们想获取第10到20行的数据,可以使用以下SQL语句: ```sql SELECT * FROM ...

    Oracle 3种分页SQL方法比较

    在Oracle数据库中,分页查询是一项常见的操作,用于在大量数据中检索特定部分,而无需加载整个结果集。本文将详细探讨三种常用的Oracle分页SQL方法:ROWNUM、ROWNUM结合子查询以及新引入的Oracle 12c的FETCH NEXT ...

    oracle sql分页语句

    在Oracle数据库系统中,实现分页查询通常使用ROWNUM伪列或者结合RANK()、DENSE_RANK()、ROW_NUMBER()等窗口函数。这里我们将详细探讨这些方法及其应用场景。 首先,ROWNUM是一个特殊的伪列,它在查询执行时为每一行...

    oracle+jsp实现分页

    下面是一个简单的 Java 代码片段,展示了如何实现分页查询: ```java public List&lt;Student&gt; getStudentsByPage(int currentPage, int pageSize) { List&lt;Student&gt; students = new ArrayList(); int startRow = ...

    oracle 分页的部分

    本篇将深入探讨Oracle分页查询的实现机制、效率差异以及优化技巧。 在Oracle中,分页查询的基本格式通常采用嵌套查询结构,以下是一个典型的示例: ```sql SELECT * FROM ( SELECT A.*, ROWNUM RN FROM ( ...

    数据库分页查询语句

    ### 数据库分页查询语句 #### 概述 在处理大量数据时,为了提高用户体验并减轻服务器压力,我们通常采用分页的方式展示数据...开发者在实际应用中应根据所使用的具体数据库版本和性能需求选择最合适的分页查询方法。

Global site tag (gtag.js) - Google Analytics