主题:  如何去写一个高效的分页代码(asp)?

黑睿

职务:普通成员
等级:1
金币:0.0
发贴:7
#12004/11/3 6:34:50
<!--#include file="conn.asp" -->

<%
Set rs = Server.CreateObject ("ADODB.Recordset")
sql = "Select * from cnarticle order by cn_id desc"
rs.Open sql,conn,1,1
%>

<%
page=request.querystring("page")  'page值为接受值 
rs.PageSize = 2 '每页显示记录数
rs.AbsolutePage = Page '显示当前页等于接收的页数 
%>

<% 
For i = 1 to rs.PageSize '利用for next 循环依次读出当前页的记录
 if rs.EOF then
  Exit For 
 end if 
response.write("<br>文章内容是:"& rs("cn_content"))
rs.MoveNext
next%>

<% 
rs.close 
Set rs = Nothing
conn.close 
set conn=nothing 
%>


上面是一段传统的分页代码,对于记录不多的时候,这样的代码不存在什么问题,
但是刚刚我测试30万记录的时候(Asp+Access),发现CPU占用达100%,试想如果将这样的代码应用到一个站点中,什么样的服务器能承受的了呢?虽然可能没有几个个人站点能把数据库记录搞到30W,这当然也包括我自己,但我还是想搞清楚,像很多大站点,即使是不使用Access,使用mySql/msSql等数据库,遇上这样的”海量数据“+“上面的分页代码”时还不是一样晕倒?

所以我停下来了,本来Asp水平就低的可以,遇到这么个问题很是困惑。希望有“明师”来指点一二,搞不清怎样写我想我就得失眠了。



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#22004/11/3 10:58:53
不需要一次就Select出全部数据,可以写好SQL,只选择页内记录。关于分页,以前帖有讨论。
www.5d.cn/bbs/NewsDetail.asp?GroupName=ASP%BC%B0%2Enet&dp=0&lp=3&id=1298793


非常大鱼