• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

asp+sqlserver 在海量数据操作的问题与解决思路

发布: 2007-6-30 18:56 | 作者: admin | 来源: | 查看: 18次 | 进入软件测试论坛讨论

领测软件测试网 现有问题:
1, 所有记录在一张表上。没有分类
2, 开发时,由于没有考虑这么大量的数据。查询语句放在程序中执行,造成速度过慢
3, 根据关系型数据库的插入过程原理,每插入一次,建一次索引查询,那么,将占用大量的内存与CPU资源,速度也将大大降低。在表中有100条记录的情况下插入与在10000条记录的情况下插入,速度与效率是完全不一样的!
4, 插入与查询是在同一张表里。并发处理数可能峰值有1000多。
5, 根据关系型数据库的查询原理,如果有人要查询记录表,将会是这样的一个数学表达式

一条记录 <=1K

总共100,000条记录,每天2万的增长速度

如果不知条件,任意查询,那将会是这样:
(1K * 100,000)/1024 = 10M

1个人是10M。如果是200个人同时查,那将会是这样:
200*10M = 2000M (约2G)

这样大的数据被数据库中取出来。并下载到本机查看,本来就是很庞大的。
6, 各输入网点的网速很多还是“猫”上网,速度肯定跟不上。
7,服务器中还存放着其它的数据等等。
7, 服务器带宽只是专线8M,就算服务器的CPU能计算得过来,数据也送不出去,就被挤塞了!




由于上述问题,出现的情况如下:
1, 网站服务器硬盘物理烧毁一块。
2, 网站带宽被完全占用,基本难以访问。
3, 网站页面速度极其慢,数据传输效率低。
4, 有些个输入单位由于网速无法响应他的操作,送出的数据包无法返回,已无法完成记录输入。



解决办法(思路):
1, 服务器更新。(硬件上)
2, 网络带宽增加。(硬件上)
3, 把查询放在数据库中进行,使用存储过程,但在百兆网速下,存储过程的应用基本与程序查询没什么明显区别。(软件上)。
4, 插入记录时,使用缓冲表,每10分钟,将缓冲表向主记录表倒一次数据。这样可以缓解主记录表的压力。让主记录表专门应对查询动作(软件上)
5, 查询时,使用文本读出记录,因为基于系统底层的指计移动,查询效率将会提高100倍。但是需要FileObjectSystem组件支持。安全性要考虑。(软件上)




如果不采取措施,会引起的问题:

数据库不堪重负,硬盘会再次烧毁。
服务器CPU一直处在100%满负荷下运行。
程序系统完全崩溃。
数据无法即时插入,无法即时反应。
无法统计与追踪。

各网站无法正常运行。

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网