分页方法
来源:互联网 发布:spring 源码分析 编辑:程序博客网 时间:2024/04/29 21:29
在做查询统计时,如果遇到数据量很大的情况,往往需要采用分页的方式来显示数据。分页的方法主要有三种方式。
一、使用控件属性,比如.net中的GridView就有个AllowPaging,我们只需设为true就能提供分页显示。这个方法用起来简单,但是分页效率很低。其原理是系统把所有符合条件的数据都读入内存,控件选择某一页的数据显示在页面。不说也明白,这个方法只适合数据量很小的系统,数据越多,系统的效率越低。
二、写具有分页功能sql语句,在我们查询数据写sql时,把相应的分页参数包含在sql语句中。这个方法稍微有点复杂,但是相对第一种方法效率高多了。下面简单列举三种常用数据库的分页SQL语句的写法。
1、sqlserver 查询第N到M条记录
sql2000
select top M * from T where id not in (select top N id from T order by ID desc) ORDER BY ID DESC ---T是表名,ID是主键 排序字段可以换。
sql2005 select * from (select *, row_number() over (order by id) as row ) from T where row between N and M ---T是表名,ID是主键 排序字段可以换。
2、 oracle 查询第N到M条记录
SELECT * FROM (SELECT A.*, ROWNUM RN FROM T A WHERE ROWNUM <= M) WHERE RN >= N ----T是表名
3、 mysql 查询第N到M条记录
SELECT * FROM T LIMIT N,M-N ----T是表名
T不仅可以是表,还可以是视图或者查询的sql语句,不管用什么语言做开发,.net也好java也好,在写个方法供调用,即可完成简单的分页查询,实现起来还是蛮简单的。也不需要写存储过程,一个方法在整个系统里几乎都能用上。
三 写存储过程,在我们查询时,通过分页参数,调用存储过程,取得我们所需要的数据。这样大大的提高查询效率。不同的数据库都可以写相应通用的分页存储过程。
在我的blog就有个sqlserver的,适用于sql2000和sql2005 http://blog.csdn.net/kongxiangli/archive/2007/05/11/1604169.aspx
mysql和oracle的分页存储过程有兴趣可以自己研究。
另外一点就是单纯的分页控件与分页效率是没有关系的。网上有很多的写得很好的分页控件,而且大多还带有原码。有兴趣的自己可以研究。
最后说明一点,文章在细节上不一定完善。
- 分页方法
- 分页方法
- 分页方法
- 分页方法
- 分页方法
- 较好的分页方法
- DataList分页方法
- ASP分页方法集合
- 调用分页方法
- 数据库分页方法
- 一种struts分页方法
- Struts分页方法[转帖]
- php分页实现方法
- AspNetPager分页方法实现
- DataGrid分页方法
- GridView 分页实现方法
- 一种struts分页方法
- Repeater分页方法
- Windows下Pidgin介绍/安装配置图文攻略
- 讨论:衡量程序员的工作效率
- 参加IT技术趋势大调查,数码相机等你拿!
- Oracle 学习7
- Java:重写equals()和hashCode()
- 分页方法
- 单词
- 我的头像
- VS2005+Pocket PC 2003上DirectShow SDK开发环境配置
- 详解如何实现最基本的AJAX框架
- C#教程第7讲委托1(学习笔记)
- 新手入门 介绍ORACLE的Copy命令和create table,insert into的比较
- 哪里有DRP系统下载啊?
- 网页常用Javascript