当前位置:七道奇文章资讯数据防范Oracle防范
日期:2011-01-25 22:55:00  来源:本站整理

特定配置下Oracle日记批量提交的最优数目-性能调优[Oracle防范]

赞助商链接



  本文“特定配置下Oracle日记批量提交的最优数目-性能调优[Oracle防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

  1、测试后台

  项目中的记录日记有时会采取批量提交的办法,它的好处是削减了获得数据衔接的次数,从而削减了网络交互的次数,提高了系统性能.为了将系统性能提高到最好,找到特定配置下oracle批量提交的最优数目,举行了这个测试.

  2、测试环境与配置(数据库服务器配置)

  操作系统:aix 5.3

  数据库版本:oracle 10g

  Java版本:1.5

  Web利用服务器:weblogic

  3、测试计划

  1. 若何举行批量提交

  大概有人对我上面提到的批量提交的实现方法不清楚,在此具体介绍一下,用到的是preparedStatement的addBatch()和 executeBatch()办法.addBatch()办法将一组参数增添到preparedStatement 对象的批处理号令中,通过调用办法 executeBatch 可以批量履行此列表中的号令.

  程序以下例: 

public static void test(){

  ......

  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防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 特定配置下Oracle日记批量提交的最优数目-性能调优
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .