高分求解决方案:ASP+MSSQL(1千万条记录、数据库文件有3G)的查询检索超时问题
我有数据库MSSQL01中有2个表如下:
表1:A02
字段:ID(自动编号)、AA、BB、CC、DD、EE、FF、GG
记录总数:300条记录左右
补充说明:字段ID为索引,AA、BB、CC、DD、EE、FF、GG里面的值非唯一性,有重复的
除了ID是自动编号类型外,其他字段全为整型
表2:DATAALL
字段:ID(自动编号)、AA、BB、CC、DD、EE、FF、GG、Prize
记录总数:1千万条记录
补充说明:字段ID为索引,AA、BB、CC、DD、EE、FF、GG里面的值非唯一性,有重复的
除了ID是自动编号类型外,其他字段全为整型
现在要实现的是:找出DATAALL表中AA、BB、CC、DD、EE、FF、GG这几个字段中的值要完全和A02表中的AA、BB、CC、DD、EE、FF、GG相同,如果找到相同的,则将DATAALL表中的Prize的值加1。
以下是我已经写好的ASP执行程序,可是运行时却出现超时提示,提示如下:
Microsoft VBScript 编译器错误 错误 '800a03f6'
缺少 'End'
/iisHelp/common/500-100.asp,行242
Active Server Pages 错误 'ASP 0113'
脚本超时
/prize.asp
超过了脚本运行的最长时间。您可以通过指定 Server.ScriptTimeOut 属性值来修改此限制或用 IIS 管理工具来修改它。
<%
response.buffer=true '启用缓冲处理
session.timeout=60 '是session的生存时间
Server.ScriptTimeout=60 '是服务器脚本超时时间
Const SqlDatabaseName = "MSSQL01"
Const SqlPassword = "sa"
Const SqlUsername = "sa"
Const SqlLocalName = "(local)"
ConnStr = "Provider = Sqloledb; User ID = " & SqlUsername & "; Password = " & SqlPassword & "; Initial Catalog = " & SqlDatabaseName & "; Data Source = " & SqlLocalName & ";"
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnStr
If Err Then
err.Clear
Set Conn = Nothing
Response.Write "数据库连接出错,请检查连接字串。"'注释,需要把这几个字翻译成英文。
Response.End
End If
set rs=server.createobject("adodb.recordset")
sql="select * from A02 order by ID"
rs.open sql,conn,1,3
i=0
do while not rs.eof
set rs1=server.createobject("adodb.recordset")
sql="select * from DATAALL where AA="&rs("AA")&" and BB="&rs("BB")&" and CC="&rs("CC")&" and DD="&rs("DD")&" and EE="&rs("EE")&" and FF="&rs("FF")&" and GG="&rs("GG")
Response.write sql
rs1.open sql,conn,3,3
If not rs1.eof Then
rs1("Prize")=rs1("Prize")+1
rs1.update
End If
rs1.close
set rs1=nothing
Response.write i
i=i+1
rs.movenext
loop
rs.close
set rs=nothing
Conn.Close
set Conn = nothing
%>
以上是ASP代码,请高手帮帮忙,谢谢!