清晨 8 点,终于开始下发贷款结息报表,此次贷款结息运行非常顺利,在账务上出现一点小错误,虽然需要大量的冲补账交易,但是还算顺利。
整个240,000 条有效贷款结息记录,在IBM-590机器上运行了57分钟,开始于2005-12-21 01:03:11.859,结束于2005-12-21 02:00:29.907,由原来的90,000条记录运行13 个小时大大降低运行速度,这次的优化工作需要总结的很多。
- 对于频繁的插入工作,建立临时表,完毕后再插入到应该插入的表中
- 尽量使用索引,哪怕是一个固定的字段值,经过验证,有可能速度会提高一个数量级,比如一个SQL语句的执行可以从0.3秒提升到0.003秒
- 对于循环的select语句,频繁运行的select语句,有必要可以针对语句建立表的索引
- 提前作一些必要动作,比如开设对应科目账号,不要让这个本来就负担很重的程序再去做别的工作
- 对于数据量大的表先做一些不必要的数据转移,完毕后再转移回来,也可以考虑优化程序,让对这类大表的操作一步到位
- 当然最重要的是做这些时间上的优化得考虑空间的优化,在足够大的空间上(系统采用IBM大鲨鱼磁盘阵列存储设备)可以放开手脚处理表的分区和必要的索引建立
- 最最重要的还是要应用的正确性,特别是银行业对金额的要求比较敏感,1分1厘也的算个清楚明了