日期:2014-05-16  浏览次数:21201 次

access换成sqlserver后,变得很慢
<%
set rs1=server.CreateObject("adodb.recordset") '社区户主
sql1="select * from people where dq='"&session("dq")&"' and name<>'' order by id desc"
rs1.open sql1,conn,1,1

while not rs1.eof and not rs1.bof
i=i+1
rs1.movenext
wend 
rs1.close
set rs1=nothing
i1=i1-rhzk1-rhzk2
response.Write(i)
%>

access数据库超过100M的,换成了sqlserver,结果速度感觉更慢了,
people表中有40000多条数据,我用while逐条读取结果就脚本超时了,想问一下有什么办法解决
------解决方案--------------------
你为什么要在脚本中用while循环呢,数据库本身的作用就是强在集合操作。如果你非要进行循环操作处理,那么请将数据库表的数据读出来,在程序中循环处理,然后再更新到数据库表中
------解决方案--------------------
你的数据库设计的合理吗?有没有建索引,一般情况下,查询速度慢肯定跟你的数据库有关系。建议你用MSSQL查询分析器试着执行看看效果如何。
------解决方案--------------------
count就可统计数量了,不用读取所有的再计数,分页的只需要读取当前页面的记录集合,建立合适的索引能加快检索速度
------解决方案--------------------
有没有把索引搞好啊?MSSQL的性能不错的。但是如果硬件不行,MSSQL发挥不了。