ASP程序非常吃内存,怎么优化一下?

来源:百度知道 编辑:UC知道 时间:2024/09/18 05:35:11
,conn.asp

<%
set conn = server.CreateObject("adodb.connection")
on error resume next
conn.Open "driver={microsoft access driver (*.mdb)}; dbq=" & server.MapPath("da##ta.mdb")
%>

,index.asp

<!--#include file = "conn.asp"-->
<%
set rstc=server.createobject("adodb.recordset")
sqltc="select * from url where class='0' order by grade desc"
rstc.open sqltc,conn,1,1
%>
<%do while not rstc.eof%>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><%=rstc("classid")%> <%=rstc("classname")%></td>
</tr>
<tr>
<%
set rs=server.createobject("adodb.recordset")
sql="select * from url where classid=" & rstc("classid") & &qu

该段代码耗用内存是因为你在第一个循环中
<%do while not rstc.eof%>
。。。。。。
<%
set rs=server.createobject("adodb.recordset")
sql="select * from url where classid=" & rstc("classid") & " order by grade desc "
rs.open sql,conn,1,1
%> 。。。。
<%rstc.movenext
loop%>
循环建立记录集 rs,每次建立都要在内存中开辟一定空间,所以耗内存。
应该先在外面建立记录集,如

<%
set rstc=server.createobject("adodb.recordset")
set rs=server.createobject("adodb.recordset")
rstc.open "select * from url where class='0' order by grade desc",conn,1,1
%>
<%do while not rstc.eof%>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><%=rstc("classid")%> <%=rstc("classname")%></td>
</tr>
<tr>
<%
rs.open &quo