总结:
在测试结果来看,采用第一种写法能比较获得较好执行的效率。
以下是测试的结果:
DROP TABLE TT PURGE;
CREATE TABLE TT AS SELECT * FROM DBA_OBJECTS;--创建表
DELETE TT WHERE OBJECT_ID IS NULL;
SELECT COUNT(*) FROM TT;--51784
INSERT INTO TT SELECT * FROM TT;
INSERT INTO TT SELECT * FROM TT;
INSERT INTO TT SELECT * FROM TT;
INSERT INTO TT SELECT * FROM TT;
INSERT INTO TT SELECT * FROM TT;
COMMIT;--共插入828544
CREATE INDEX IDX_TT_OBJECT_ID ON TT(OBJECT_ID);--创建索引
execute dbms_stats.gather_table_stats(ownname => 'ADMIN',tabname => 'TT');--收集统计信息
-----------------------------------------------------------------------------------------------------
以下是分页的几种方法
--1.
--执行时间: 00: 00: 05.02
/*
22857 consistent gets
10891 physical reads
*/
SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM TT ORDER BY OBJECT_ID) A WHERE ROWNUM <= 200000) WHERE RN >= 100000;
--2.
--执行时间: 00: 00: 17.90
/*
22857 consistent gets
34961 physical reads
*/
SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM TT ORDER BY OBJECT_ID) A ) WHERE RN BETWEEN 100000 AND 200000;
--3.
--执行时间: 00: 00: 06.04
/*22857 consistent gets
12081 physical reads*/
SELECT * FROM (SELECT TT.*, ROW_NUMBER() OVER(ORDER BY OBJECT_ID) ROWINDEX FROM TT) A WHERE ROWINDEX BETWEEN 100000 AND 200000;
--4.
--执行时间: 00: 00: 06.08
/* 122858 consistent gets
11962 physical reads*/
-- /*+ ORDERED USE_NL(P S) */
SELECT * FROM TT WHERE ROWID IN (SELECT RID FROM (SELECT ROWNUM RN, RID FROM (SELECT ROWID RID FROM TT ORDER BY OBJECT_ID)--ORDER BY SAL DESC WHERE ROWNUM <= 200000) WHERE RN >= 100000);
另外一个对分页在10g,11g下执行效率的分析帖子:
相关推荐
在Oracle数据库中,SQL分页是一种非常常见的查询技术,它允许我们从大量数据中按需获取一部分结果,而不是一次性加载所有记录。这对于提高用户体验和优化系统性能至关重要,尤其是在处理大数据量的Web应用中。本实践...
Oracle数据库在处理大数据量查询时,分页查询是一种常见的优化策略,目的是限制返回结果集的大小,加快查询速度,提供更好的用户体验。本文将详细探讨Oracle的分页查询语句及其存储过程。 首先,Oracle的分页查询...
Oracle 的分页查询语句是数据库查询中的一种优化手段,用于控制查询结果集的大小,以提高查询效率。在 Oracle 中,分页查询语句可以使用 ROWNUM 和子查询来实现。本文将详细介绍 Oracle 分页查询语句的格式、优化...
Oracle数据库在处理大数据量时,分页查询是一个非常重要的功能,它可以帮助用户高效地获取数据集的一部分,而不是一次性加载所有结果。本篇文章将详细介绍Oracle中的分页查询,并提供一种常用的分页查询语句格式和一...
在数据库管理系统(DBMS)中,特别是在Oracle这样的大型关系型数据库中,分页查询是一种非常实用的技术。它允许用户根据需求获取特定数量的记录,这对于处理大量数据尤其重要。例如,在网页应用中,分页技术可以帮助...
在Oracle数据库中,分页查询是一项非常常见的操作,特别是在数据量庞大的情况下,为了提高用户体验,避免一次性加载过多数据导致页面响应变慢,我们通常会采用分页的方式展示数据。本篇将详细介绍Oracle数据库中的...
Oracle数据库在处理大数据量时,分页查询是一个重要的性能优化策略,它可以帮助用户按需获取数据,而不是一次性加载整个结果集,从而降低网络传输负担和内存消耗。本篇将深入探讨Oracle分页查询的实现机制、效率差异...
在Oracle数据库中,伪列(Pseudocolumn)并非真正意义上的列,而是一种特殊的数据库对象,它看起来像表中的一个列,但实际上并不存储数据。Oracle提供了一些内置的伪列供用户使用,如`ROWID`和`ROWNUM`等,这些伪列...
Oracle数据库中的分页查询是大数据量检索时必不可少的技巧,它可以帮助用户有效地管理查询结果,只返回所需的页面数据,从而减少网络传输和内存消耗。在Oracle中,分页查询通常利用`ROWNUM`伪列来实现。`ROWNUM`是一...
在Oracle数据库中,分页查询是一项常用的技术,主要用于处理大数据量时的查询需求,能够有效地减少每次查询返回的数据量,提高系统的响应速度和用户体验。 #### 二、基本分页查询格式 Oracle分页查询的基本格式通常...
在Oracle数据库中,实现分页查询是一项常见的需求,特别是在处理大量数据时。本文将详细介绍Oracle中的分页查询技术,帮助初学者快速掌握这一技能。 #### 二、基本分页查询格式 Oracle的分页查询通常采用以下格式:...
这个压缩包文件名"JAVA JAP分页写法大全"暗示了它可能包含各种不同的分页实现示例,这对于初学者来说是一个极好的学习资源。下面我们将详细探讨Java中常见的分页方法。 首先,我们要理解分页的基本概念。在处理大量...
在Oracle数据库中,分页查询是获取大量数据集的一部分,以提高性能并提供更好的用户体验,尤其是在Web应用中。本文将详细介绍Oracle实现分页查询的几种SQL语法。 1. **无ORDER BY排序的写法** 这种方法适用于无需...
Oracle数据库在处理大数据量时,分页查询是必不可少的操作,它可以有效地减少网络传输的数据量,提高用户界面的响应速度。本文将详细介绍Oracle中分页查询的SQL语法,并对比不同方法的效率。 1. **无ORDER BY排序的...
Oracle SQL是甲骨文公司开发的一种关系数据库管理系统(RDBMS)中使用的...通过上述知识点的学习,可以更深入地理解Oracle SQL的基本语法和特性,进而编写有效且高效的SQL查询语句来操作和管理Oracle数据库中的数据。
标题“Sql语法转换为Oracle语法”涉及到的主要知识点是SQL Server与Oracle数据库之间的SQL语句转换。这通常是因为在系统迁移或跨平台开发时,需要将SQL Server的查询语句适应Oracle数据库的语法。 描述中提到的...
因此,对于SQL的调优,DBA们通常会尝试不同的SQL写法,目的是让Oracle数据库生成一个更优的操作计划,以获得更高的查询效率。 接下来,Oracle优化器分为基于规则的优化器(RBO)和基于代价的优化器(CBO)。RBO主要...
DB2、ORACLE SQL写法的主要区别 1、数据类型转换函数 2、Where条件弱类型判断 3、replace关键字 4、子查询别名 5、DATE数据类型的区别 6、分页的处理 7、decode函数 8、NVL函数 9、substr的不同 10、获取操作系统...
Oracle数据库在处理大数据量时,分页查询是一种常见的优化手段,它可以帮助用户高效地获取数据库中的部分数据,而不是一次性加载所有记录。以下是对Oracle分页查询的实例详解: 1. **Oracle分页查询基础** Oracle...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,它的日常操作包括了数据库的启动与关闭、用户管理、数据类型的使用以及SQL语句的编写等关键环节。以下是对这些知识点的详细说明: 一、数据库的启动和...