asp数据库由access转换为sql后速度变慢

来源:百度知道 编辑:UC知道 时间:2024/06/16 23:49:03
如题 不知道为什么 好像慢很多 同样的服务器 同样的数据量 感觉要慢很多 还有个问题就是 我sql有个表由于20w+的数据 前台显示要很长时间 而且sql占用了服务器大量 长时间导致服务器死机 有办法解决没呢 分不多了 谢谢了先
能说详细些吗?我的程序是之前access的asp源码 然后改了一些常见的 access和sql不同的地方

这是由于access对于数据的处理已经过加工和优化。
转换成SQL后,速度变慢很可能时因为没有很好的处理分页问题引起的,即每次读取的数据量过大。每页需显示多少,则只从数据库读取多少条记录,而不是一次读取20W+的数据量。
比如每页显示100条数据,按ID降序排列显示,则:

第1页的SQL语句select top 100 * from TABLE order by ID DESC

第2页的SQL语句select top 200 * from TABLE where ID NOT IN(select top 100 * from TABLE order by ID DESC) order by ID DESC

第3页的SQL语句select top 300 * from TABLE where ID NOT IN(select top 200 * from TABLE order by ID DESC) order by ID DESC
...
第N页的SQL语句select top 100*N * from TABLE where ID NOT IN(select top (N-1)*100 * from TABLE order by ID DESC) order by ID DESC

如果写成存储过程,性能更佳。

有个问题不知你注意没有,sql会动态分配内存,默认设置会基本占用全部内存.如果你asp和sql在一台服务器的话,这样就会导致你的服务器速度变慢!!!
解决方法如下:
1、开企业管理器,在"local服务器"上右击选择"属性",选择"内存"选项卡,你可以选择"动态地配置SQL Server内存"将最大值设置一个比较合适的值,例如:如果你的物理内存为2G,你可以设置为1024性能就不错!
2、当然,你也可以将内存分配为一个固定值,1024mb。

注意:给内存分配配置并不说明sql占用的最大内存即为你设定的最大值(如上:1024MB),因为sql相关组件占用的内存是不包括在