业务报表速度优化
对大数据量的业务报表做速度优化是用户经常提的需求,特别是大型的ERP系统中的报表。下面是我在过程中优化报表生成速度使用几个方法:
1.减少与数据库的交互:减少与数据库的交互是非常有效的优化方法,最好一次性将生成报表的所需要的数据从数据库中读取出来,这样生成报表的速度就要快很多;当然,这样
对客户端的PC配置要求高点(现在PC也便宜),但也比频繁的数据库交互要快;
2.缩小数据读取的范围:对于大数据量的报表一般对会让用户先选择条件,在用户选择的条件中,并不是所有条件的数据都存在,根据真正有发生数据的条件来生成报表这样就缩
小了数据读取的范围;
3.减少生成报表循环中的不必要操作:将循环中公用的操作和数据放在循环开始前(循环外)先做,尽量在循环中写精简的代码,减少冗余代码,你在循环中少写一句冗余代码就
代表生成报表时少执行N次,这样速度自然就高了;
4.根据数据结构制定特殊的报表生成逻辑:对于实在难优化的数据可以抽时间好好分析分析生成报表的数据的数据结构,对特殊的数据结构写特殊的报表生成逻辑;
5.采用汇总表:这是以前大型系统中最常用的一种方法,就是增加一张汇总表来保存发生明细记录的汇总数,生成报表时直接读取汇总表数据,这样就减少了数据量;但这样做要
求发生明细记录时同步更新汇总表,如果汇总表没有更新则会造成明细数据和汇总表不一致,这样当然生成的汇总类的报表数据就不对了。所以采用这个方法也是根据具体需要,
如果采用,最好在软件中提供汇总数据修复的功能;因为并发也会造成不能及时更新汇总表;
说点题外话,公司有个客户,天天反映说我们软件太慢,结果我们去一看,我靠,最好的服务器就是老赛扬 PC133 128内存,下面的客户端机子就更不用说了,再怎么说也是国内
比较大的家电商,也太吝啬了吧!还上ERP,再好软件给这么差的配置用怎么跑得快!哈哈!后来又去,他们信息主管居然满心欢喜的说:“总部给我们批了一台服务器,256内
存,DDR的呢!”我差点憋气过去,现在连家用机都512DDR了,这个“服务器”!好了,就写这些吧!