ASP中如何解决某个数据表I/O太过频繁影响服务器性能的问题?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP中如何解决某个数据表I/O太过频繁影响服务器性能的问题?相关的知识,希望对你有一定的参考价值。

一个B2B平台,SQL2000数据库中有“产品表”(60万条数据)、“供求表”(130万条数据)及“会员资料表”等6个比较大数据量的表在前端WEB读取信息页面时,均需要通过一个“企业ID”去一个“企业资料表”(15万条数据)中获取企业简要信息,这使得几乎整个B2B平台90%的页面均会对这个“企业资料表”进行读取操作,当网站出现并发访问时,导致I/O太过频繁而影响到整个服务器性能下降?请问有什么办法可以解决?
如果使用数据缓存应该是最理想的,但ASP缓存10多万条数据好像没有ASP.NET那么好操作,能不能在后台用asp.net将数据缓存起来,然后asp页面直接读取内存里面的“企业资料表”,但asp怎样读取缓存起来的这个数据块,比如读取第N行第M列数据。
除此以外,还有什么好的解决方案,谢谢!

我提供个思路给你,大型数据库按号段分表或者分库,比如1~10W的ID在库A或者表A,10W-20W的数据在表B或者库B……以此类推,然后ID属哪个段就指向哪个表,然后适当的用一些文本文件存储不长变更的数据信息,变动时也更新到文本文件里,系统内只读这些文本文件,尽量把数据库的负担减少。至于索引、存储过程那些就不说了,是最基本的优化方式。 参考技术A 看下能不能帮上LZ吧,使用数组放在Application里面做缓存吧。recordset有个方法,直接弄成二维数组的。getrows,不知道LZ用过没。简单的查询毫无压力,一旦涉及排序什么的就不行啦。可以试试,我觉得。 参考技术B 把企业简要信息加到另外几个表里,做冗余字段,就不用关联这个表了。 参考技术C 其实几十上百万条数据也不是很多了,你优化一下查询语句及设计表的索引,应该不会太慢的。 参考技术D 数据库做文章吧 建立视图 索引 存储过程 性能会提高很多 现在也很流行ajax分页 这样每次不会调用全部数据了

以上是关于ASP中如何解决某个数据表I/O太过频繁影响服务器性能的问题?的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统I/O操作与零拷贝

检测解决SQLServer延迟阻塞I/O问题

在ASP中如何防止用户频繁刷新网页

Linux - 磁盘I/O性能评估

固态硬盘 - 由于I/O设备错误,无法运行此项请求

利用Oracle分区表来减少磁盘I/O冲突