特定配置下Oracle日记批量提交的最优数目-性能调优[Oracle防范]
本文“特定配置下Oracle日记批量提交的最优数目-性能调优[Oracle防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
1、测试后台
项目中的记录日记有时会采取批量提交的办法,它的好处是削减了获得数据衔接的次数,从而削减了网络交互的次数,提高了系统性能.为了将系统性能提高到最好,找到特定配置下oracle批量提交的最优数目,举行了这个测试.
操作系统:aix 5.3
数据库版本:oracle 10g
Java版本:1.5
Web利用服务器:weblogic
3、测试计划
1. 若何举行批量提交
大概有人对我上面提到的批量提交的实现方法不清楚,在此具体介绍一下,用到的是preparedStatement的addBatch()和 executeBatch()办法.addBatch()办法将一组参数增添到preparedStatement 对象的批处理号令中,通过调用办法 executeBatch 可以批量履行此列表中的号令.
程序以下例:
......
preparedStatement ps = null;
try {
conn = DataSourceManager.instance().getConnection();
ps = conn.prepareStatement("insert into log(col1,col2)values(?,?)");
for (int i = 0; i < commitCount; i++) {
ps.setString(1, "hello");
ps.setString(2, "123");
ps.addBatch();
}
ps.executeBatch();
......
}
2.计划思绪
测试要得到的就是程序中一次批量提交的日记最优条数,也就是commitCount的值.
拿到这个测试项目时,我的思绪是:设定批量提交日记参数commitCount的值,在一段可计算的时间time 内提交日记数count,得到每秒提交的日记条数v(v=提交的日记数count/时间time).渐渐增添批量日记参数commitCount,得到差别的v,比较数据,取最大的v所对应的commitCount,即为批量提交的最优数目.
3. 程序计划
思绪对比简单肯定,剩下就是程序的计划了.计划程序的原则是可操作性要高,主要问题是思绪中提到的各个参数的设置和获得.在经验丰富的前辈的指导下,对程序举行了计划,在此不再赘述具体代码,只将程序计划思绪简单介绍一下:
a.commitCount的设置
在测试页面设置输入框,将此值作为参数输入.
b.time的获得
在提交日记之前和之后辨别取系统时间,作差即得提交日记所用时间time
c.count的设置
为忽视批量提交日记每次获得数据衔接所用的时间,设置提交次数views,并在程序中将获得数据衔接的代码写在提交全部日记前(注意:写在批量提交程序中每个批量提交城市成立数据衔接,从而使得到的time偏差较大).这样提交一第二天志只获得一次数据衔接.所以提交次数越大,得到的time就越接近提交日记所用的时间,可忽视获得衔接所用时间.
所以在页面设置"提交次数"输入框views,程序中计划一个循环来模拟多次批量提交日记,并计算count=commitCount*views
程序计算v=count/time 的值,显示到页面.
别的注意:插入数据时,数据表原有数据条数对插入数据的速度也会有影响.为保证每次插入日记时数据表环境一致,在每次插入日记之后要删除本次插入的日记.
4、测试履行情形和测试后果
程序写好布置后,万事俱备,可以举行测试了(注意:最好找网络安定的时间举行测试,得出的测试后果偏差较小).
在页面输入"批量提交日记参数"commitCount和"提交次数"views,并记录返回到页面的v值.
"提交次数"设为50,人为设定"批量提交日记参数"commitCount,从100开始,一次增添20,到200,发现v的值一向增大,之后将 commitCount辨别以100、200等幅度向上增添,直到5000.发现commitCount=500时,v值最大.
为解除网络缘由,每组数据测试两次.具体测试数据形成了折线图,以下图:
所以在以上描写的特定测试环境下,oracle 日记批量提交的最优数目是500 条.
以上就是测试的全历程,大概有人有更好的测试办法,以期同享.
以上是“特定配置下Oracle日记批量提交的最优数目-性能调优[Oracle防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |