oracle中数据的分页显示及优化

在一个页面中经常会出现分页的现象,那么后台数据库又应该如何分页显示呢?

分页可以使用oracle中的rownum函数。

一个页面中从第几行到第几行数据的显示。

下面以scott用户下的emp表说明:

语句一:

select b.*
from(
select a.* ,rownum row_num
from (select * from emp ) a) b
where row_num between 3 and 5;

语句二:

select b.*
from(
select a.* ,rownum row_num
from (select * from emp ) a
where rownum<6) b
where row_num>2;

语句一和语句二有相同的功能,都可以将emp表中的第三行到第五行的数据显示出来,但是当数据库中的数据量很大时,语句二明显比语句一更优化。

在oracle中sql语句的执行是从内到外执行的,语句二中先将rownum<6的数据放入到b表中,再从b表中查询出rownum>2的数据,效率更高于语句一。

时间: 2024-10-05 19:40:59

oracle中数据的分页显示及优化的相关文章

jsp:使用jsp完成数据的分页显示

一,使用jsp将数据库内的数据.分页显示到页面 1,创建一个servelt处理后台数据,和数据库的数据 private static final long serUid=1L; //加载驱动 static final String jdbc="com.mysql.jdbc.Driver"; //要连接的数据库url static final String db_url="jdbc:mysql://localhost:3306/test"; //数据库用户名 stat

MySQL与Oracle中的基本分页

MySQL中的基本分页: select ename from emp where xxxxx order by sal  desc limit (pageno-1)*pageSize,pageSize; Oracle中的基本分页 select tt.* from ( select t.*,rownum as  linenum from (select  * from  tbl_role) t where rownum <#{0}*#{1} )tt where linenum  >(#{0}-1

SQL语句中使用 with 递归实现表中数据树状显示

在开发过程中会遇到很多实现树状的功能,之前为了实现数据的树状显示一般都是通过程序里面的递归实现,今天试了一下通过sql语句实现具体如下: 表名:DeptInfo 字段:DeptId(部门编号),DeptName(部门名称),DeptUpId(部门上级ID),DeptPath(部门层级) 从DeptUpId和DeptPath中可看出表数据可能很乱: 为了实现表中数据树状显示,条例清晰具体代码实现如下: with dept as(select DeptId,DeptUpId from DeptInf

分页显示数据----前端(将数据库中的信息分页显示到网页)

在上篇文章中,我们已经完成了分页显示的后台处理,现在进行前端的处理. 期望显示结果: 由于对于不同的项目.不同的数据库数据部分不同,所以我们将分页部分提取出来,单独建立jsp页面: 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <%@ taglib prefix="c"

Oracle中索引的使用 索引性能优化调整

索引是由Oracle维护的可选结构,为数据提供快速的访问.准确地判断在什么地方需要使用索引是困难的,使用索引有利于调节检索速度. 当建立一个索引时,必须指定用于跟踪的表名以及一个或多个表列.一旦建立了索引,在用户表中建立.更改和删除数据库时, Oracle就自动地维护索引.创建索引时,下列准则将帮助用户做出决定:        1) 索引应该在SQL语句的"where"或"and"部分涉及的表列(也称谓词)被建立.假如personnel表的"firstna

Hibernate+Spring+Struts2整合开发中的一个分页显示方案(转载)

分页显示一直是web开发中一大烦琐的难题,传统的网页设计只在一个JSP或者ASP页面中书写所有关于数据库操作的代码,那样做分页可能简单一点,但当把网站分层开发后,分页就比较困难了,下面是我做Spring+Hibernate+Struts2项目时设计的分页代码,与大家分享交流. 1.DAO层接口的设计,在MemberDao接口中定义了如下两个方法: public interface MemberDao{        //省略了其他的代码        /**     * 分页查询     * @

Talend 将Oracle中数据导入到hive中,根据系统时间设置hive分区字段

首先,概览下任务图: 流程是,先用tHDFSDelete将hdfs上的文件删除掉,然后将oracle中的机构表中的数据导入到HDFS中:建立hive连接->hive建表->tJava获取系统时间->tHiveLoad将hdfs上的文件导入到hive表中. 下面介绍每一个组件的设置: tHDFSDelete_1: 机构: tHDFSOutput_1: hive: tHiveCreateTable: tJava_1: tHiveLoad_1: 在Context下面建一个内容变量: 这个内容变

利用管道在SQL中实现查询分页显示和筛选

分页显示: [[email protected] ~]$ echo "desc dbms_sqltune"|sqlplus / as sysdba | more SQL*Plus: Release 11.2.0.4.0 Production on Sat Sep 24 13:04:17 2016 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterpr

分页(将数据库中的信息分页显示到网页)

问题分析: 当我们想检索数据库中的信息并将其显示到网页上时,如果数据库中的信息过多时 .一方面会使数据库开销非常大,降低性能:另一方面在一张页面上显示过多数据也会降低用户体验. 解决办法: 1.由于在分页之后每一页显示的信息不再仅仅是数据空中的数据而是类似于下图: 所以我们需要创建一个page类: package com.neuedu.manage.bean; import java.util.List; public class page <T>{ private List<T>