脚本运行超时,改代码还是改Server.ScriptTimeOut?
asp+access
数据库表goods_info有6万多条记录
如果价格变动,要更新的字段有5个
页面执行时间太长,会自动中断,这是为什么?
多次发现,一秒中更新约8条记录,如果更新1~2千条记录没问题,时间1~2分钟。
但有时候要要上万条记录变更数据,页面执行1~2钟就自动中断的,脚本运行超时。。。。。。我设置的是90秒超时
要执行这么多记录总不能把响应时间设到无限长吗?<% Server.ScriptTimeOut=9999999 %>
有没有其他办法?改代码可以吗?怎么改才可以?
6万多条记录也不多啊,就算一秒钟更新10条记录,要执行1.6个小时????这个不太正常吧?
我的代码:
***************************************************************************************
if request("action")="update" then
timeS=timer()
set rs=server.CreateObject("adodb.recordset")
rs.Open "select * from goods_info where g_id=''",conn,1,3 '根据条件变更条件筛选记录
if rs.Bof and rs.Eof then
Msg="<br><li>没有要更新的记录!</li>"
dTime=-1
call WriteMsg()
else
do while not rs.Eof then
rs("p1")=rs("p1")*request("cRate") '更新零售价
rs("p2")=...... '更新字段2
rs("p3")=...... '更新字段3
rs("p4")=...... '更新字段4
rs("p5")=...... '更新字段5
rs.Update--------------------------------------》是否必须一条记录一次update?
loop
rs.Close
set rs=nothing
end if
timeE=timer()
calTime=FormatNumber((timeS-timeE),2)
aveTime=formatNumber(calTime/r,3)
Msg="<br><li>数据库更新完成!</li>"
Msg=msg&"<br><li>执行时间:"&calTime& "秒,平均"&aveTime&"秒/个记录</li>"
dTime=-1
call WriteMsg()
end if