`
Luob.
  • 浏览: 1589564 次
  • 来自: 上海
社区版块
存档分类
最新评论

Oralce 分页 三种实现

阅读更多
1.分页的三种实现 速度最快  1 > 2 > 3
1.第一种采用rowid   4层
2.第二种是用 rownum分页 3 层 (oracle规定:每次查询中 rownum只能用一次)
3.第三种是 采用分析函数来实现

2.先介绍常用的rownum
select * from (select row_.*,rownum rn from (select empno,ename,sal from scott.emp where sal>800 order by sal ) row_ where rownum<11)  where rn>5;

3.使用 rowid分页(如果查询里面有 排序了,在最外面也要排序)
select * from emp where rowid in (select rid from (select rownum rn,rid from (select rowid rid,sal from emp where sal>800 order by sal) where rownum<11) where rn>5) order by sal; //发现不能和group by 使用,有人说是oracle的bug。所以 一般人都用 rownum分组

4.采用分析函数
 select * from (select e.*,row_number() over(order by sal) rk from emp e where e.sal>800) where  rk<11 and rk>5 // 这个 在数据量比较多的时候 速度严重下降,所以一般人也不选这个.

5.介绍下rowid(为什么rowid比rownum快)
rowid 确定了每条记录在oracle中的那一个数据对象,那个数据文件,块,行上。相当于直接在磁盘上读取数据.rownum 相对于是一个映射值,还需要根据这个映射值去到磁盘上找。
rowid的格式如下: (有人说根据每个段的大小可以算出每个物理文件的大小。)

数据对象编号 文件编号 块编号行编号
OOOOOO FFF BBBBBBRRR
data_object_id# rfile# block# row#
32bit 12bit 22bit 16bit
0
2
分享到:
评论

相关推荐

    oracle分页程序的实现

    另一种方法是通过子查询和自连接来实现分页,这种方法适用于旧版本的Oracle数据库(不支持ROW_NUMBER())。假设我们要查询第M页的数据,每页有N条记录,可以这样做: ```sql SELECT t1.* FROM your_table t1, ...

    Oracle分页(limit方式的运用)

    #### 三、Oracle分页的实现步骤 1. **确定分页参数**:首先需要确定每页显示的记录数`rows_per_page`以及当前页码`page_number`。 2. **计算查询范围**:根据分页参数计算出查询的起始行号和结束行号。起始行号为`...

    mysql、sqlserver、oracle分页,java分页统一接口实现

    三、Oracle 分页 Oracle 分页使用 rownum 伪列来实现,rownum 伪列可以指定数据的行号。例如,以下语句将从 mytable 表中获取从第 10 行到第 20 行的数据: ```sql select * from ( select mytable.*, rownum num...

    oracle分页查询

    Oracle 分页查询详解 ...Oracle 分页查询可以使用 ROWNUM、ROW_NUMBER() 和子查询三种方法来实现,each with its own advantages and disadvantages. 选择哪种方法取决于具体的应用场景和性能要求。

    oracle分页查询sql

    ### Oracle分页查询详解 #### 一、分页查询的重要性 在数据库操作中,分页查询是一项非常重要的技术。尤其当处理大量数据时,一次性获取所有数据不仅会消耗大量的网络带宽,还可能导致前端页面加载缓慢,用户体验...

    ssh+oracle分页

    在“ssh+oracle分页”这个主题中,我们将深入探讨如何利用这三个框架与Oracle数据库进行集成,并实现数据的分页显示。 1. **Struts框架**:Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web框架。...

    Oracle&JSP分页和Oracle分页

    另一种更高效的方法是使用Oracle的`ROW_NUMBER()`函数,配合`OVER()`子句,这样可以实现更复杂的分页逻辑。比如,如果我们要查询第5页的数据,每页20条,可以这样写: ```sql SELECT * FROM ( SELECT ROW_NUMBER()...

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

    本文主要解决 Oracle 分页查询中排序与效率问题,通过实践和分析,提供了两种解决方案,并对比了两种方法的优缺点。 知识点 1: Oracle 分页查询的基本概念 Oracle 分页查询是指在查询结果中,通过限制行数来实现...

    ORACLE分页查询效率

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

    oracle-jdbc分页实现(只需传入sql语句即可实现分页)

    Oracle JDBC分页实现是数据库操作中的一个重要环节,尤其是在处理大量数据时,为了提高用户体验和系统性能,分页查询显得尤为重要。Oracle数据库提供了多种方法来实现分页查询,其中包括使用ROWNUM伪列、游标...

    Oracle 3种分页SQL方法比较

    本文将详细探讨三种常用的Oracle分页SQL方法:ROWNUM、ROWNUM结合子查询以及新引入的Oracle 12c的FETCH NEXT WITH OFFSET语法。这三种方法各有优缺点,适用于不同的场景。 1. ROWNUM方法: ROWNUM是Oracle中最基础...

    使用jdbc_oracle实现的分页功能

    本示例着重讲解如何利用JDBC和Oracle数据库实现分页功能,同时涵盖一个表的基本操作:增加、删除和修改。 首先,我们需要了解JDBC。JDBC是Java API,它提供了一套标准接口,使得Java程序可以与各种类型的数据库进行...

    Oracle 分页实例 带分页控件用法

    在这个Oracle分页实例中,我们将探讨如何结合分页控件实现数据的分页显示。 首先,我们看到一个名为`webdiyer:AspNetPager`的控件,这是一个ASP.NET的Web分页控件。这个控件包含了几个关键属性: 1. `PageSize`:...

    Oracle All 添加 修改 更新 Oracle分页 emp表 存储过程实现

    在这个场景中,我们将深入探讨如何在Oracle中针对emp表实现分页查询的存储过程。 首先,让我们了解什么是分页查询。在大数据量的表格中,一次性加载所有数据可能会对系统性能造成压力,因此通常我们会采用分页的...

    oracle 分页完整代码

    在这个Java和Oracle结合的分页实现中,我们将探讨如何通过Java后端配合Oracle数据库进行有效的分页处理。 首先,Oracle提供了一种名为ROWNUM的伪列,它可以用来对查询结果进行排序和限制。在执行分页查询时,我们...

    oracle 分页类文件

    本文件包包含了一系列用于实现Oracle数据库分页查询的类,帮助开发者解决分页问题。 首先,`StringUtil.java`文件很可能包含了字符串操作的相关工具方法,这些方法在处理SQL语句时非常实用,特别是构建分页查询的...

    Oracle分页

    一、Oracle分页原理 Oracle提供了几种不同的分页方式,包括ROWNUM、ROWNUM BETWEEN、ROWNUMBER() OVER()等。其中,ROWNUM是最基础的分页方法,它为每一行返回的结果集分配一个唯一的整数值。但是,ROWNUM在并行查询...

    Oracle的SQL分页实践

    在Oracle数据库中,SQL分页是一种非常常见的查询技术,它允许我们从大量数据中按需获取一部分结果,而不是一次性加载所有记录。这对于提高用户体验和优化系统性能至关重要,尤其是在处理大数据量的Web应用中。本实践...

    oracle分页查询并返回总记录数据存储过程

    Oracle 数据库提供了多种方法来实现分页查询,其中使用存储过程是一种高效且灵活的方式。本文将详细介绍如何在 Oracle 中创建一个用于分页查询并返回总记录数的存储过程。 #### 核心概念 1. **存储过程**:存储在...

    spring mvc实现Oracle分页

    本项目着重讲解如何在Spring MVC环境中,结合JDBC技术,实现对Oracle数据库的分页查询功能,并通过Ajax进行动态加载,提升用户体验。此外,我们还将涉及LigerUI和jEditable两个前端库,以增强用户界面和交互性。 ...

Global site tag (gtag.js) - Google Analytics