打开多个RS 如何优化????ASP

来源:百度知道 编辑:UC知道 时间:2024/06/07 12:08:50
set rsy=server.createobject("adodb.recordset")
rsy.open "select * from lei where id<>0 order by xu desc",conn,3,2
do while not rsy.eof
i=i+10
u=u+1
idd=rsy("id")
leiming=rsy("leiming")
response.write leiming

set rso=server.createobject("adodb.recordset")
rso.open "select * from daohang where daishen="&idd&" order by laishi desc",conn,3,2

response.write "<a href='wmll.asp?ww="&rso("id")&"&sj="&sj&"&id="&id&"&iii=5555&tt=888'>"&mid(rso("zm"),1,2)&" </a>"
response.write "<br/>"

rsy.movenext
loop
rsy.close
set rsy=nothing
这段代码太站CPU了如何优化???????急
response.write leiming

从复循环太多了 只要一个呀

你的rso也没有销毁啊

rso.close
set rso=nothing

最好的办法是用存储过程!呵呵

======就是啊,所 以使用连接查询嘛

你的 lei.id字段唯一对应daohang.daishen吗?

如果是则用下面查询
select a.leiming, b.zm, b.id from lei a left join daohang b on a.id=b.daishen where a.id<>0 order by a.xu desc

然后直接循环取就行了。

set rsy=server.createobject("adodb.recordset")
rsy.open "select a.leiming, b.zm, b.id from lei a inner join daohang b on a.id=b.daishen where a.id<>0 order by a.xu desc",conn,3,2
do while not rsy.eof
i=i+10
u=u+1

response.write =rsy("leiming")

response.write "<a href='wmll.asp?ww="&rsy("id")&"&sj="&sj&"&id="&id&"&iii=5555&tt=888'>"&mid(rsy("zm"),1,2)&" </a>"
response.write "<br/>"

rsy.movenext
loop
rsy.close
set rsy=nothing