开发工具:PB
数据库:DB2
需要更新客户的零件价格信息和其他的相关信息,每次更新数据会有2800000条左右,目前的程序需要执行11个小时才可以完全结束。
实现方法是用DATASTORE来Update的,客户仍然感觉很慢,请教各位大神,有什么其他的好一点的办法可以进一步的提高效率吗?
恩,有一张的表的数据比较多,考虑过你说的,现在正在和客户沟通,因为他们有可能会取那张表的历史数据。可以将更新的东西写到存储过程吗,那样会不会快一点。
追答存储过程也是追条执行的,性能上没啥差别的.
如果历史数据是增量,且访问不频繁,建议单独存放一张表;
而经常访问的实时(每次更新的)数据,也单独放一张表;
这样做可能会增加一个界面,或者说走个分支接口,但是对客户体验上来说性能还是有很大提高的.
另外,可以考虑分区(比如按照时间,这种分区方式较为常用),这个你可以研究下.
按照现在程序里面的逻辑,历史数据的确是增量,理论上来说,客户是不会取很早之前的数据的,之前我们也考虑过分两张表存放,但是现在客户也没有具体回复,所以我们也没法决定对那部分历史数据的处理方案。
现在我正在对每部分的时间做测试,看那部分花的时间最长,到时候在做优化吧。
客户没回复,你也只能在现有的基础上优化了,加油~
现在就是这么处理的,但是每一条都需要去表里校验有没有这个数据,有就UPDATE,没有就INSERT。也是挺耗费时间的。