在DVBBS论坛上看到cwbnig写的一个关于数据库 *** 作的类,就下载下来看一下。
发现其中在分页时读取记录时的代码比较特殊,至少以前我写程序时没有这样写过。
输出上下分页时也是再用“select count(*) from table where 条件”而不是用已打开的rs.recordcount属性。以前有读过一些文章说用rs.recordcount很耗资源,于是用正在运行的程序测试了一下(每天1万IP左右的访问量)。数据库中共有687条数据。
原未改动前采用最普通的分页程序读出所有记录,第一次,406.25毫秒,第二次,296.875毫秒,第三次,343.750毫秒,后又刷新了好几次,最快一次是203.375毫秒。
改进分页的读取程序后,第一次,46.875毫秒,第二次,78.125毫秒,46.875毫秒。
真是差太多了,以后再也不用rs.recordcount了:(
然后再改读取记录的程序,原使用的是最普通的读取记录的程序,现改为如下代码
(sql可用):
...
max="SELECT MIN(ID) FROM (SELECT top "&(page-1)*pagesize+1&" ID FROM table ORDER BY ID DESC) tbl"
strsql="SELECT top "&pagesize&" * FROM table WHERE ID <=("&max&") ORDER BY ID DESC"
rs.open strsql,conn,1,1
...
(ACCESS可用):
...
strsql="SELECT top "&pagesize*page&" * FROM table ORDER BY ID DESC"
strsql="SELECT top "&pagesize&" * FROM ("&strsql&") AS tblme ORDER BY "&ID&" ASC"
strsql="SELECT * FROM ("&strsql&") AS tblme ORDER BY "&ID&" DESC"
rs.open sql,1
...
不过,这个改了之后,页面执行时间到没有减少(可能是记录数不多的原因,明天找个记录数多点的再改一下)。一直是46.875毫秒,第二、三、五十几页都是这个速度,偶尔会出现32.125毫秒:)
总结以上是内存溢出为你收集整理的分页学习心得1全部内容,希望文章能够帮你解决分页学习心得1所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)