批量程序的优化

一.批量优化思路
在程序越来越庞大,业务数据越来越多,会出现程序的访问慢或者某一部分的运行不能满足要求。这时我们就会对相应程序做优化。程序上的优化大致分为两种,一种是多客户端同时访问的高并发应用程序,如前端应用,一种是多线程但不要求高并发的程序,如批量应用。
对于不同的需求有不同的优化策略,对于高并发的应用应注重每个请求在可接受的时间延迟上占用带宽尽量小,以保证尽可能多的人访问进来但却不会影响用户体验,即时间换空间。对于要求大数据吞吐量的应用来说,其一般是批量任务且中间不会有人工干涉,这样的应用要求速度的快。故应该是尽可能的占用带宽,使得系统的各组件之间少交互,每次交互尽可能占用最大的I/O(I/O合并),即空间换时间。


二.批量优化分析
批量程序中都应该记录每步执行的时间,保存到日志中。这样会为后续的分析提供很大的便利。在批量优化之前,确定优化思路很重要,这就需要对程序进行精准分析。批量程序的需求是尽可能快的执行完任务,这样就需要找出耗时比较长的步骤,查看原因。
在关系型数据库中,夜间往往会后备份数据库的操作,对于oracle有特定的工具,expdp。其要比exp强大很多。故在备份数据库的步骤时可以用expdp的多线程备份。
接收上游系统的文件步骤的优化为减少无用数据的获取。
对于为下游系统供数也是同样的道理,尽量减少无用数据的供给,如果下传数据较多可以使用多线程及分开下传。
对于本系统的内部批量任务,寻找出耗时较多的任务,分别分析是何种原因造成的。

三.批量优化测试方案
对于批量任务的修改需要制定严格的测试方案。需要两个同样的数据库来进行对比,在执行新旧程序后对比每个表的数据一致性。
为了减少工作量,需要知道批量任务具体修改了哪些表,这样就需要为每个表添加触发器。用存储过程所有表批量添加触发器,及关闭删除触发器。
对比两个数据库的数据需要用到数据库link,用存储过程来对比两个库的不同,把不同的表及数据记录下来。以便为后续的程序修改提供依据。


四.批量优化具体方案
1.优化备库策略
对于不同的数据库有不同的备库方法,找到用时最短的那个,比如多线程技术的运用。
2.批量步骤的精简及多线程的运用
删除业务中无用的任务步骤。把顺序执行的任务在业务允许的情况下改成同时执行。精简与外围系统交互的数据量
3.用数据库逻辑替代java逻辑
该步主要是减少应用各组件之间的交互,合并IO请求,占用最大带宽,利用数据库原有技术来进行优化。如用数据库的存储过程来代替java逻辑。
4.索引优化
为数据库表建立合适的索引很重要。

5.对数据库表分析





 

 

 

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值