access换成sqlserver后,变得很慢

fluxayxxx 2014-04-23 10:30:07
<%
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逐条读取结果就脚本超时了,想问一下有什么办法解决
...全文
308 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fluxayxxx 2014-05-03
  • 打赏
  • 举报
回复
好吧,我最后还是用count来 一条一条写sql统计数据了,这样速度快了很多了
微wx笑 2014-05-01
  • 打赏
  • 举报
回复
如楼上各位说的,首先是索引的问题,在查询分析器中执行你的SQL,看看需要多长时间, 才40000数据,如果大于1秒就要考虑优化了。 还 有就是while循环了,为什么要用它,如果有特殊用途必须用它,可以考虑使用存储过程,这样可以减少数据从SQLServer到IIS的传递开销
Dogfish 2014-04-29
  • 打赏
  • 举报
回复
有没有把索引搞好啊?MSSQL的性能不错的。但是如果硬件不行,MSSQL发挥不了。
hookee 2014-04-29
  • 打赏
  • 举报
回复
试试看在dq字段加个索引 sql1="select count(*) from people where dq='" & session("dq") & "' and name<>'' order by id desc" 直接取 rs1(0) 即可
gingerkang 2014-04-28
  • 打赏
  • 举报
回复
count就可统计数量了,不用读取所有的再计数,分页的只需要读取当前页面的记录集合,建立合适的索引能加快检索速度
晨晨 2014-04-23
  • 打赏
  • 举报
回复
你的数据库设计的合理吗?有没有建索引,一般情况下,查询速度慢肯定跟你的数据库有关系。建议你用MSSQL查询分析器试着执行看看效果如何。
fluxayxxx 2014-04-23
  • 打赏
  • 举报
回复
我是要统计数据表里各种类型的人数,有什么比较好的方法吗?我之前都是遍历数据表来判断,数据量太大了,搞不定了
KeepSayingNo 2014-04-23
  • 打赏
  • 举报
回复
你为什么要在脚本中用while循环呢,数据库本身的作用就是强在集合操作。如果你非要进行循环操作处理,那么请将数据库表的数据读出来,在程序中循环处理,然后再更新到数据库表中

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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