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月了。。慢的要死,有办法解决吗? 展开
<% 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月了。。慢的要死,有办法解决吗? 展开
8个回答
展开全部
查询语句是可以分开而且应该分开写的,当为了不出错,大家都写在一起,真是的,欢迎有共同观点和即将有这样观点的加我。交个朋友,不知我说明白了没?欢迎你的咨询,但是我申明,这些你们自己都可以做。不要动不动的不动下脑袋让我给你写,那是不可能的,我不做害人有得不到好处的事情
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
优化一下代码吧 太冗繁了点 设置一下缓存
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用response对象把浏览器缓存关掉,并设置timeout大一点你就可以看到即时的输出结果了,应该不会超时了
如果是算法问题造成的,请修改算法
如果是算法问题造成的,请修改算法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
太冗繁了点 设置一下缓存
加分加分加分加分加分加分加分加分
加分加分加分加分加分加分加分加分
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的代码太xx了。。
你要查什么 更新什么 表述清楚你的目的。
大家好帮你优化。
你要查什么 更新什么 表述清楚你的目的。
大家好帮你优化。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询