网页打开要好长时间,可能查询过多 时间过长 怎么解决 代码本身好像没逻辑错误,高手给个解决的办法

zq125 2011-04-25 05:16:15
网页打开要好长时间,可能查询过多 时间过长 怎么解决 代码本身好像没逻辑错误,高手给个解决的办法
rs2的查询大概执行500来次 网页就说超时了,请高手有什么优化的方法吗、 先谢谢了


if Lostmaxmin>0 then '有去掉头尾
set rs1=rsuser("SELECT DISTINCT nianji,banji,nianji & banji AS bj FROM data order by nianji,banji")
if not(rs1.bof and rs1.eof) then
kemu=split("yuwen|shuxue|yingyu|kexue|shehui|sizheng|tiyu|meishu|yinyue|diannao|zhsj|lj|yjxxx|yyky","|")
call rsuser("delete from datatemp")
set rs3=rsuser("SELECT * from datatemp")
do until rs1.eof
rs3.addnew
rs3("nianji")=rs1("nianji")
rs3("banji")=rs1("banji")
for i=1 to 14
set rs2=rsuser("select avg(" & kemu(i-1) &") from (select * from data where id not in(select top " & Lostmaxmin &" percent id from data where nianji & banji='" & rs1("bj") & "' order BY " & kemu(i-1) & ",id) and id not in(select top " & Lostmaxmin & " percent id from data where nianji & banji='" & rs1("bj") & "' order BY " & kemu(i-1) & " desc,id)) where nianji & banji='" & rs1("bj") & "'")

if isnull(rs2(0)) then '百分比过高,数据为空
rs3(2+i)=0
else
rs3(2+i)=rs2(0)
end if
rs2.close
set rs2=nothing
next

'rs3.update
rs1.movenext
loop
rs3.close
end if
rs1.close
response.End
set rs1=("select * from datatemp order by nianji,banji")
else
set rs1=rsuser("SELECT nianji,banji,avg(yuwen) ,avg(shuxue),avg(yingyu),avg(kexue) ,avg(shehui) ,avg(sizheng) ,avg(tiyu) ,avg(meishu) ,avg(yinyue) ,avg(diannao),avg(zhsj) ,avg(lj) ,avg(yjxxx) ,avg(yyky) from data group by nianji,banji")
end if


...全文
138 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
晓风斜阳 2011-04-27
  • 打赏
  • 举报
回复
大批量数据查询,使用存储过程,这样比你上面贴的,在程序中写的效率要高好多。
如果你不使用存储过程,那么就需要改一下数据库查询超时的时间设定
zq125 2011-04-26
  • 打赏
  • 举报
回复
能说的详细点吗 不太懂 谢谢[Quote=引用 1 楼 lzd_83 的回复:]
1、查询数据量的大的话最好不要写在页面中,效率也不会高的,最好还是写到存储过程。
2、稍微复杂查询最好写到存储过程中。直接在程序调用存储过程。
[/Quote]
qiashzhou 2011-04-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zq125 的回复:]
能说的详细点吗 不太懂 谢谢

引用 1 楼 lzd_83 的回复:
1、查询数据量的大的话最好不要写在页面中,效率也不会高的,最好还是写到存储过程。
2、稍微复杂查询最好写到存储过程中。直接在程序调用存储过程。
[/Quote]

去查一下SQL Server的存储过程
Rotel-刘志东 2011-04-25
  • 打赏
  • 举报
回复
1、查询数据量的大的话最好不要写在页面中,效率也不会高的,最好还是写到存储过程。
2、稍微复杂查询最好写到存储过程中。直接在程序调用存储过程。

22,294

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧