历史版本13 :性能优化指导手册 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 为何要进行性能优化

  • 您是否遇到访问一张报表时加载时间很长?或者频繁访问大数据量报表占用了过多的服务器内存而导致内存溢出?又或者过多的用户并发访问的时候服务器承受压力过大导致服务器崩溃?

  • 您是否有这样的感想,访问了一张复杂报表,数分钟后再次访问了同样的报表,却发现还需等待相同的时间才看到结果,这太不人性化!

  • 您是否因为频繁地出现请求超时而恼火?

若您遇到了以上的种种情况,这说明您的报表系统需要进行性能优化,赶紧行动起来吧,让您的报表系统运行地更快更顺畅!

1.2 影响性能的因素

1.2.1 报表取数

一般来说,报表越复杂,所涉及到的后台数据库基础表也就越多。除了格式简单的列表式报表需要在报表中显示超大的数据量外,大部分的报表是从几十万或者几百万的源数据中筛选,运算,返回几十条或几百条不等的数据结果。如果取数使用的方法不恰当,报表取数时间就会过长,从而影响性能。

1.2.2 报表制作

报表制作时往往会使用字段的关联、高亮、数据字典、公式计算等等报表内置的功能,如果这些功能使用的不正确,或者报表存在多余的设置,这样就会因为这些不必要的设置而增加计算时间,从而影响性能。

1.2.3 服务器性能

FineReport 作为纯 Java 软件,可以与 J2EE 的应用无缝集成,集成至服务器的报表就会继承服务器的资源。服务器的虚拟内存、连接池的设置等等往往会导致很多性能问题。

2. 如何进行性能优化编辑

2.1 快速定位及解决性能问题

可参考下图快速定位性能问题:

性能2.png

图中序号分别代表的含义如下表所示:

注:技术支持联系方式:QQ「800049425」、电话「400-811-8890」。

序号参考文档主要优化性能场景

1

抽数缓存插件使用步骤
  • 优化低实时性报表中,取数性能较差的场景

  • 优化多数据集查询的低实时性大屏性能

2新计算引擎插件
  • 自动后台分页查询及计算,提升大数据量明细表的查询性能

  • 纵向折叠树报表性能优化,通过前端异步加载/后台异步取数优化折叠树性能

2.2 更多参考

分类文档主要优化性能场景
性能优化插件性能优化插件
  • 合并相同 sql ,优化相同 sql 查询高并发场景下的性能

  • 优化折叠树的计算性能

  • 并行部分数据集取数并缓存,可加快取数速度,避免重复取数

  • 提供监控 sql 工具,便于进行取数耗时分析

报表性能优化优化报表取数

若计算过程要通过 SQL 语句从数据库中取数据,那么可以通过控制数据量的大小和对数据的提前预处理来提高报表的性能

优化报表计算时间完成报表取数后,设计器会对数据库返回的数据进行扩展、分组、列表、汇总等运算,好的模板制作习惯往往可以优化报表的计算时间
巧用相邻连续分组相邻连续分组功能,可以提高报表的性能
服务器性能优化服务器内存修改FineReport 工程部署到其他应用服务器上时,对应用服务器有一定的配置要求,当应用服务器不能满足报表工程使用时,会出现宕机风险,需要修改使用内存和其他参数,确保服务器稳定运行
模板计算结果缓存设置模板计算结果缓存后,当访问过的模板再次被访问时,直接从缓存中读取计算结果,来减小服务器的压力以及提升报表的访问速度