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

目录:

1. 为何要性能优化编辑

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

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

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

  • 您是否......

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

如果用户所在场景行式引擎无法支持,则可以试用 新计算引擎插件 ,该插件实现了多数据源情况下的分页查询功能,用户无需再写复杂的分页 SQL 或 JS 按钮,就可以让报表快速完成首页加载。
注:该插件支持 Oracle、SQL Server、MySQL、HANA、PostgreSQL、Impala、DB2 等大部分主流 JDBC 数据源。

2. 影响性能的因素编辑

以上种种性能缺陷是如何产生的呢?一般有如下几方面存在性能问题:

2.1 报表取数

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

2.2 报表制作

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

2.3 服务器性能

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

3. FineReport 如何优化性能编辑

针对影响性能的因素,FineReport 有不同的优化方案。如对 SQL 的优化,使用存储过程等优化取数过程;减少冗余单元格及不必要的设置从而加快报表计算时间;采用并发设置,缓存设置,集群等提高服务器性能等等。

简而言之,FineReport 性能优化,主要包括两个方面:一、报表性能优化;二、服务器性能优化。具体优化方法我们将在本章下面进行详细介绍。

4. 谁需要进行性能优化编辑

这一部分文档适用于初步掌握了报表设计,且需要对报表的性能做进一步优化的报表设计者;或者报表开发完毕,在向服务器部署的过程中,需要对服务器进行优化的部署工程师。

5. 索引编辑

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

  2. 优化折叠树的计算性能

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

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

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

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

抽数缓存插件抽数缓存插件
  1. 优化低实时性报表中,取数性能较差的场景

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

报表性能优化报表执行过程
优化报表取数
优化报表计算时间
巧用参数注入
巧用相邻连续分组
服务器性能优化服务器内存修改
模板计算结果缓存