性能优化-采用切分小事务方式提升性能


        尽量避免使用大事务操作,这样会导致严重的性能问题,可根据实际业务切分为小的业务点进行处理;技术方面,可分析代码,在原业务不发生变化的前提下切分为更小的事务块进行优化。


案例:

        这几天新接手了一份需要性能调优的项目,公司的BM系统需要跟客户的ERP系统做对接,采用DBLINK方式从ERP中取数据,然后存到预算系统中(内部业务比较复杂),然后再将执行结果反馈给ERP。

       这项任务是通过定时任务执行的,每天21:00开始运行,上线后发现明天上班时定时任务还没有运行结束。经过测试发现不足500条的数据,竟然耗时20分钟,这存在严重的性能问题,需要调优。业务比较简单,就是从ERP中取数据,然后经过一系列处理后存到公司的BM系统中,经分析的出的结果是从业务上很难进行优化。我们决定从代码入手。

原代码是这样做的:

public class Task {
  public void run() {
    service.method1();
  }
}

public class Service {
  public void method1() {
    //开启事务
    //1.获取到ERP中500条数据
    //2.然后对这500调数据进行迭代,对每一条数据进行业务处理,然后记录处理的结果。
    //3.将结果反馈给ERP
    //关闭事务
  }
}


优化后代码是这样做的(拆分成小事务后):


                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值