asp嵌套循环操作速度慢的问题

<!--#includefile="../conn.asp"--><%Server.ScriptTimeOut=6000%><%'response.writemonth(... <!--#include file="../conn.asp"-->
<% Server.ScriptTimeOut=6000 %>
<%
'response.write month(now)
'月度 type=0,季度 type=1,年度 type=2

sql="select UserName from Member_List order by id asc"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open sql,conn,1,1
if not Rs.eof and not Rs.bof then
do while not rs.eof
UserName=rs("UserName")
UserNameTeam=UserNameTeam&","&UserName
rs.movenext
loop
end if
rs.close
UserNameTeam=right(UserNameTeam,len(UserNameTeam)-1)

Dim MyArray
MyArray = Split(UserNameTeam,",")
For I = Lbound(MyArray) to Ubound(MyArray)
'Response.Write MyArray(I) & "<br>"
'月积分处理
for Mi=1 to 1
monthsql="select sum(BGZ) as monthCount from Score_List where UserName='"&MyArray(I)&"' and DATEPART(mm, SendTime)='"&Mi&"' and DATEPART(yy, SendTime)='"&Year(Now)&"' "
'response.write (monthsql&"<br>")
Set rs2 = Server.CreateObject("ADODB.Recordset")
rs2.open monthsql,conn,1,1
if not Rs2.eof and not Rs2.bof then
monthCount=rs2("monthCount")
if isnull(monthCount)=true then
monthCount=0
end if
end if
rs2.close
'response.write (monthCount&"<br>")

'判断是否已经插入数据,如已插入则更新数据
SFCRSql="select id from Score_Top where UserName='"&MyArray(I)&"' and ScoreTime='"&Year(Now)&"-"&Mi&"' and ScoreType='0' order by id asc "
Set rs2 = Server.CreateObject("ADODB.Recordset")
rs2.open SFCRSql,conn,1,1
if not Rs2.eof and not Rs2.bof then
conn.execute ("update Score_Top set ScoreValue='"&monthCount&"' where UserName='"&MyArray(I)&"' and ScoreTime='"&Year(Now)&"-"&Mi&"' and ScoreType='0' ")
else
conn.execute ("insert into Score_Top (UserName,ScoreValue,ScoreType,ScoreTime) values ('"&MyArray(I)&"','"&monthCount&"','0','"&Year(Now)&"-"&Mi&"')")
end if
rs2.close
response.write (MyArray(I)&Mi"月积分计算完成<br>")
next
Next

conn.close
%>
我的打算是for Mi=1 to 12 next
但是就第1月查询都要超时,更别说循环12月了。。慢的要死,有办法解决吗?
展开
 我来答
苍郁
2009-01-13 · TA获得超过184个赞
知道小有建树答主
回答量:225
采纳率:0%
帮助的人:0
展开全部
最好别用嵌套循环,程序的灵魂就是算法,一段代码的执行速度,全在预算法。而算法当中最占速度的就是循环,一个循环就是n条判断语句。
其实很多循环可以用判断语句来代替的。修改一下你的算法。
duankesong
2009-01-06 · TA获得超过446个赞
知道小有建树答主
回答量:770
采纳率:0%
帮助的人:351万
展开全部
查询语句是可以分开而且应该分开写的,当为了不出错,大家都写在一起,真是的,欢迎有共同观点和即将有这样观点的加我。交个朋友,不知我说明白了没?欢迎你的咨询,但是我申明,这些你们自己都可以做。不要动不动的不动下脑袋让我给你写,那是不可能的,我不做害人有得不到好处的事情
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小东哥物理课堂
2009-01-06 · TA获得超过1834个赞
知道小有建树答主
回答量:484
采纳率:0%
帮助的人:425万
展开全部
优化一下代码吧 太冗繁了点 设置一下缓存
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Richeer
2009-01-07 · 超过71用户采纳过TA的回答
知道答主
回答量:248
采纳率:0%
帮助的人:224万
展开全部
用response对象把浏览器缓存关掉,并设置timeout大一点你就可以看到即时的输出结果了,应该不会超时了
如果是算法问题造成的,请修改算法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
谏姿03H
2009-01-10 · TA获得超过5788个赞
知道小有建树答主
回答量:1848
采纳率:0%
帮助的人:669万
展开全部
太冗繁了点 设置一下缓存
加分加分加分加分加分加分加分加分
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
馒头上的樱桃
2009-01-15 · 超过15用户采纳过TA的回答
知道答主
回答量:114
采纳率:0%
帮助的人:56.6万
展开全部
你的代码太xx了。。
你要查什么 更新什么 表述清楚你的目的。
大家好帮你优化。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 6条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式