您的位置:首页 > 其它

实现高端报表工具的缓存功能

2014-07-07 10:23 183 查看
高端的报表工具都提供了缓存机制,避免报表重复计算带来额外性能开销,节省CPU资源,实现结果共享。报表在计算过程中,大部分时间(85%以上)都消耗在数据源(准备)上,集算器可以用简单的方法实现数据源的缓存复用,让普通报表工具也拥有缓存机制。 实现数据源缓存有两个关键,根据报表不同的参数和宏生成不同的报表缓存;缓存超时时间需要重新计算。下面以实例说明。 报表描述 根据销售记录表计算各销售人员本年销售额和上年销售额,及其增长率,统计客户数与大客户数(订单金额超过10000)。报表样式如下:

该报表供公司多人查看,如果能实现现有报表工具中没有的缓存机制,能够极大地提升用户体验。 集算器实现


A5:判断以报表名和参数命名的缓存文件是否存在,若存在并且缓存文件未超时,直接读取缓存文件,并返回结果。上述代码设置的超时时间为3600秒,该时间可设置单独的配置文件,使用时直接读入,以方便配置维护; A6-B21:当缓存文件不存在或超时时,则根据计算逻辑重新计算结果; B22:根据计算结果,生成缓存文件; A23:通过集算器JDBC为报表输出数据。 可以看到实现缓存功能的实际代码只有3、4行,简单清晰。 报表调用 集算器封装了标准的JDBC接口供报表工具调用集算器脚本,以润乾报表为例,调用过程如下:

集算器采用的是类存储过程的调用方式,sales为集算器脚本名称。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息