前几日做了一个测试,目的要得出一个结论,单纯的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秒徘徊。
得到这个结果,小弟无语了,怎么可能?还望各路大侠给个分析思路!如有类似测试分享,不胜感激!!!