正在阅读:SQL2000数据库压力测试实例详解SQL2000数据库压力测试实例详解

2007-08-31 16:02 出处:PConline 作者:网络文摘 责任编辑:gongjianhui

 
  测试过程

  整个测试过程分为大容量数据测试和大记录量数据测试:

  大容量数据测试:

  在大容量的数据测试中,我们通过插入图片来使数据库的容量膨胀,所以在以下的所有数据库操作中,例如插入数据,都是指的插入带图片的数据。测试中选择了一张41,958字节的图片,并且大容量测试是在插入100,000条记录以后的测试,因此我们可以大致估计当时的数据表的容量为 (41958 * 100000) / (1024 * 1024) = 4001.43MB。
 
  首先通过测试程序按顺序进行如下测试,在空表中“插入2000条纪录->选择1000条记录->更新1000条记录->删除1000条记录”,并记录下各操作所需要的时间。测试结果如下表所示:

  

Insert 2000条纪录

Select 1000条纪录

Update 1000条纪录

Delete 1000条纪录

132.781 S

41.94 S

0.841 S

1.552S


 
  (表二)


 
  上面的测试是在空数据表中进行数据库各种基本操作的测试,并且记录了所需要的时间。然后我们插入100,000条带有图片的纪录,使数据表的数据量膨胀到4001.43MB,接下来的工作就是测试大容量环境下的各种数据库操作情况。
 
  同样按照以上的的步骤进行测试:“插入2000条纪录->选择1000条记录->更新1000条记录->删除1000条记录”,并记录下各操作的时间,如下:

  

Insert 2000条纪录

Select 1000条纪录

Update 1000条纪录

Delete 1000条纪录

139.05 S

42.36 S

0.971 S

2.264 S


 
  (表三)

 

  通过对比,我们发现:

  在大记录量(百万条记录得数据量下),对SQL2K的影响并不算大,其性能影响也比较小。在需要大量时间的SQL操作中,SQL2K在大容量数据环境下的性能基本能保持,不会有太多的性能下降。

  那让我们通过计算再来看一下了,下面是在大容量数据环境下,同样操作增加的时间与初始数据库环境下所需时间的百分比:

  

Insert 2000条纪录

Select 1000条纪录

Update 1000条纪录

Delete 1000条纪录

4.72%

1.001%

15.46%

45.88%

  (表四)

  从表中中可以看出,Update和Delete操作的时候,好像在大容量环境下的性能损失严重。但是考虑到,因为存取的数据库服务器与客户端位于不同的机器上,虽然通过100M的内部网连接,但是由于网络的问题,导致了存取中网络的延时。当操作所需要的时间比较大的时候,这一点延时对时间比例影响不大,而一旦操作所需要的时间比较短的时候,这个延时就显得尤为突出了。

  对于Delete操作中的45.55%的性能损失,还有一个原因是,当删除纪录的时候,数据库会重建索引。当数据量太大的原因下,导致了重建索引耗费了较多的时间。

键盘也能翻页,试试“← →”键

为您推荐

加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多

服务器论坛帖子排行

最高点击 最高回复 最新
最新资讯离线随时看 聊天吐槽赢奖品