不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
优化分页中的SQL语句
编辑:dnawo 日期:2007-04-05
平时我们分页时都是一次将全部记录读取到记录集中,再利用RecordSet对象的属性进行分页显示,这样在记录非常多时,占用的资源是非常可观的,以前也考虑过这个问题(见"关于分页的一点思路"),优化思路也正确:只读取需要的记录到记录集中,然而方法都围绕在取得每页头尾的ID上,今天再蓝色论坛上看到了另一个方法,非常简单,只是优化了下SQL语句,如下:
注意不要写成下面的方式(实测access数据库三千多条数据慢很多):
这应该是最简单的方法了。
需要注意的是当取第一页记录时直接用"select top 每页记录数 字段 from 表"就可以了,使用子查询会出错!
在操作过程中还发现top对max是无效的,如"select top 5 max(id) from 表"的结果仍是所有记录中最大的id。
复制内容到剪贴板
程序代码

select top pagesize field1,field2 from tab1 where id >(select max(id) from (select top pagesize*(page-1) id from tab1 order by id)) order by id
注意不要写成下面的方式(实测access数据库三千多条数据慢很多):
复制内容到剪贴板
程序代码

select top pagesize field1,field2 from tab1 where id >(select max(id) from tab1 where id in(select top pagesize*(page-1) id from tab1 order by id)) order by id
这应该是最简单的方法了。
需要注意的是当取第一页记录时直接用"select top 每页记录数 字段 from 表"就可以了,使用子查询会出错!
在操作过程中还发现top对max是无效的,如"select top 5 max(id) from 表"的结果仍是所有记录中最大的id。
评论: 1 | 引用: 0 | 查看次数: 4122
发表评论
请登录后再发表评论!