`

ORACLE 分页查询SQL

阅读更多

1. 根据 ROWID 来分

SELECT * FROM t_xiaoxi WHERE rowid IN(
	SELECT rid FROM (
		SELECT rownum rn,rid FROM(
			SELECT rowid rid,cid FROM t_xiaoxi  ORDER BY cid DESC
		) WHERE rownum<10000
	) WHERE rn>9980
) ORDER BY cid DESC;
 

执行时间0.03秒

 

2.按分析函数来分

select * from (
	select t.*,row_number() over(order by cid desc) rk from t_xiaoxi t
) where rk<10000 and rk>9980;
 

执行时间1.01秒

 

3.按ROWNUM来分

select * from(
	select t.*,rownum rn from(select * from t_xiaoxi order by cid desc) t where rownum<10000
) where rn>9980;

 执行时间0.1秒

 

 

其中t_xiaoxi为表名称,cid为表的关键字段,取按CID降序排序后的第9981-9999条记录,t_xiaoxi表有70000多条记录
个人感觉1的效率最好,3次之,2最差

 

SELECT *
FROM   (SELECT a.*,
               rownum rn
        FROM   (SELECT *
                FROM   oc a
                ORDER  BY k001) a
        WHERE  ROWNUM <= 20)
WHERE  rn >= 10 AND rn < 20;
--此处之所以在外面包了一层,是因为 ROWNUM不能像rn一样加条件,只有用里面 SQL检索出的结果集才能分页



SELECT b.*
FROM   (SELECT *
        FROM   (SELECT a.*,
                       rownum rn
                FROM   (SELECT ROWID rid,
                               status
                        FROM   product a
                        WHERE  company_id = ?
                        ORDER  BY status) a
                WHERE  rownum <= 20)
        WHERE  rn > 10 ) a,
       product b
WHERE  a.rid = b.rowid;
--用rowid的方式分页效率比单纯用 rownum的效率要高

 

 

另外加一条:

 

Oracle中复制一张表

 

create table table_name as ( select * from table )
分享到:
评论

相关推荐

    oracle分页查询sql

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

    ORACLE分页查询SQL语法

    本文将详细介绍Oracle中分页查询的SQL语法,并对比不同方法的效率。 1. **无ORDER BY排序的写法**: 这种方式的效率最高,因为它避免了额外的排序操作。示例代码如下: ```sql SELECT * FROM ( Select ROWNUM ...

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

    ### Oracle 分页查询并返回总记录数据存储过程 在数据库应用开发中,为了提高用户体验以及减少服务器负担,分页查询成为了一种常见的技术手段。Oracle 数据库提供了多种方法来实现分页查询,其中使用存储过程是一种...

    Oracle的SQL分页实践

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

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

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

    Oracle 3种分页SQL方法比较

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

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

    ### 解决Oracle分页查询中排序与效率问题 在Oracle数据库中进行分页查询时,经常会出现性能瓶颈,尤其是在处理大数据量的情况下。本篇文章将详细探讨如何优化Oracle分页查询中的排序与效率问题。 #### 一、理解...

    oracle分页查询

    Oracle 分页查询详解 Oracle 分页查询是指从大型数据表中提取指定范围的记录,以便提高查询效率和减少数据传输量。常用的 Oracle 分页查询方法有三种:使用 ROWNUM、使用 ROW_NUMBER() 和使用子查询。 第一种方法...

    Oracle分页查询(很不错的介绍)

    首先,理解Oracle分页查询的基本结构。通常,Oracle的分页查询采用嵌套查询的方式实现。以下是一个典型的分页查询模板: ```sql SELECT * FROM ( SELECT A.*, ROWNUM RN FROM ( SELECT * FROM TABLE_NAME ) A ...

    oracle的分页查询

    Oracle 的分页查询 在 Oracle 中,分页查询是非常常见的需求,但是在使用查询条件时又不能使用大于号(&gt;)。本文将讲解 Oracle 中的分页查询,包括使用 ROWNUM 伪列和 ORDER BY 子句对查询结果进行排序和分页。 一...

    Oracle的分页查询语句 Oracle分页的存储过程

    Oracle数据库在处理大数据量查询时,分页查询是一种常见的优化策略,目的是限制返回结果集的大小,加快查询速度,提供更好的用户体验。本文将详细探讨Oracle的分页查询语句及其存储过程。 首先,Oracle的分页查询...

    Oracle实现分页查询的SQL语法汇总

    本文将详细介绍Oracle实现分页查询的几种SQL语法。 1. **无ORDER BY排序的写法** 这种方法适用于无需特定排序顺序的情况,效率最高。在查询时,它创建一个子查询,将ROWNUM伪列与实际数据结合,然后在外层查询中...

    java web与Oracle数据的分页功能

    Oracle数据库则提供SQL查询语言来操作数据,包括支持分页查询的语句。 实现分页功能,主要涉及以下几个步骤: 1. **设置查询参数**:包括每页显示的记录数(pageSize)和当前页数(pageNumber)。这些参数通常由...

    Oracle分页(limit方式的运用)

    ### Oracle分页(LIMIT方式的运用) 在数据库查询操作中,分页是非常常见的需求之一,尤其是在数据量较大的情况下,为了提高用户体验以及减轻服务器压力,...希望本文能为你理解和掌握Oracle分页查询提供一定的帮助。

    oracle sql分页语句

    了解了这些基础知识,我们还可以进一步优化SQL查询,比如通过索引来提高查询速度,或者根据具体业务需求选择合适的分页策略。在实际应用中,应综合考虑性能和代码的可读性,选择最合适的分页方法。 总的来说,...

    mysql分页,oracle分页,sql server三种数据库实现分页

    mysql,oracle,sql server分页总结与比较

    Oracle 分页存储过程 SQL

    Oracle 分页存储过程 SQL Oracle 分页存储过程 SQL

Global site tag (gtag.js) - Google Analytics