这里原先构想是100分钟内并发用户从80个提升到100个,但Benchmark Factory使用的是分开多次迭代来进行对比,于是便有上述图例(具体语句的执行情况只精选了80、90、100三次迭代)。
从数据中分析,在80个并发用户时,TPS还是约等于并发用户数,并且在20分钟内就完成了模型中的操作量。在90个并发用户时,TPS已经大为下跌,事务处理时间大为增加,但在20至30分钟左右还是能够基本完成模型中的操作量。至100个并发用户时,TPS就相当低下,部分事务处理时间到了一个比较难以忍受的地步,使用的时间也耗费40多分钟。虽然因为到后面数据库表中的数据越来越多,但如此的性能还是需要优化。
从事务角度入手,文章开头所设计的模型大概在80个并发用户左右会遭遇瓶颈,如果并发用户数目不多,则该ORACLE数据库足够可以应付。另外B表的数据量增长得很快,进行对该表查询的事务时间亦随之呈几何级别增长,必须对该表进行索引管理以提高效率。其余两个需要经常查询的表同理。
6. 后记
此应用是针对已经投入生产使用的ORACLE数据库,通过Benchmark Factory调用系统中常用的SQL语句来进行数据库性能测试,此乃Benchmark Factory的冰山一角也。读者不妨在阅读本文后,尝试Benchmark Factory的其他测试向导,找出Benchmark Factory的强大所在。
三、 小结
综合上面的3种应用,我们分析一下各自的优缺点和适用范围:
LoadRunner是一种工业级的性能测试工具,也得到了业界的广泛认可,但对于数据库性能测试来说,它显得有点勉为其难,同时提供的协议支持也不多,对于初中级测试人员来说,是个很大的挑战;
JAVA应用是需要自己对编码和数据库操作都比较熟悉的情况下才选择的方案,当然也可以用c和其他的开发工具,关键是能够按照自己的意愿实施性能测试。对于初中级测试人员来说,也将是个很大的挑战;
Benchmark应用也是一种比较简单适用的数据库性能测试工具,它自身支持的数据库类型较多,如mysql,db2,sybase,oracle等,对于初学者来说,是个不错的选择;
纵观上面的应用,我们是从难到易找到各种方法进行测试的,目的就是要逐步提高我们的测试水平,提高测试效率,同时让不同层次的测试人员掌握数据库性能测试方法。些许经验,共享之,错漏难免,不吝赐教。
作者工作单位:
中国电信集团系统集成公司广东分公司
广东亿迅科技有限公司
质量管理部
版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像。51testing软件测试网欢迎与业内同行进行有益的合作和交流,如果有任何有关内容方面的合作事宜,请联系我们。