SQLServer中update操作如何优化

web性能 专栏收录该内容
5 篇文章 0 订阅



   前几日做了一个测试,目的要得出一个结论,单纯的insert、update、select在百万数据量时的表现。但是测试过程中发现修改操作的表现十分异常,特向各位请教。下面简单描述一下我的环境与方法。

  程序引入c3p0连接池,然后直接用jsp取连接操作,没有使用spring、hibernate等框架,数据库sqlserver2008,web服务器tomcat 6.0.26,数据库与web服务器各一台机器。

  数据库连接池最大200个连接,tomcat最大线程数1000。

  表结构,id为主键

 

并有唯一索引

CREATE UNIQUE NONCLUSTERED INDEX [IX-MEMBER] ON [dbo].[members]
(
 [name] ASC,
 [id_card] ASC
)

  测试脚本,为避免各虚拟用户修改同一条数据,事先缓存1万条数据,然后2000用户顺序来取数据,去做更新。

  测试方法,每虚拟用户每5秒执行一次请求,最高2000用户。每秒上两个用户。此时160万左右的数据量,结论让人。。。,上图吧


 

图一:虚拟用户数 


 

图二:每秒响应点击数

 



 
 图三:事务的执行时间

 

   每秒响应20次左右,事务响应时间也是一路飙升。没有分析出缘由。

  后来同样的表结构,和数据量,导入orcale数据库,同样的测试方法,结果如下,继续上图


 

图四:orcale测试时,虚拟用户数
 

 

图五:orcale测试时,每秒响应的点击数(天啊600+,但后面出现了连接数过多错误,暂且不管它)
 

 

图六:orcale测试时,事务响应时间,一直在0秒徘徊。

 

  得到这个结果,小弟无语了,怎么可能?还望各路大侠给个分析思路!如有类似测试分享,不胜感激!!!

 

 

 

 

 

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值