网页打开要好长时间,可能查询过多 时间过长  怎么解决 代码本身好像没逻辑错误,高手给个解决的办法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
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) & ",id)) where  nianji & banji='" & rs1("bj") & "'")
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

解决方案 »

  1.   

    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") & "'")
    这句查询共计执行了500来次  服务器就吃不消了  是不是有什么方法改进这句查询吗???