1 概述

1.1 版本

服务器版本
v6.9.0及之后版本

1.2 功能简介

模板数据量较大时,采用目前的海量模式,将数据集数据抽取到服务器内存,在内存中筛选和过滤,有内存溢出风险,而且第一次数据展示快,但后面翻页时数据加载比较慢,影响用户体验。
乐创者v6.9.0版本扩充了新计算引擎,主要用于提升模板大数据量场景下明细、过滤、汇总等简单模板的性能,可以明显提升这些模板的展现速度。

2 实现原理

通过对模板的预处理(编译),将一些模板中的设置编译为 SQL 语句,交由 SQL 处理,同时按需取数,一次只取出部分数据,同时后台分页计算。
这是一种可以规避大数据量带来的压力,优先确保首页快速加载展现的一种计算方式。

3 案例执行情况对比

1、环境
系统:windows 10
分配内存:4G
cpu: i7 8核
2、报表案例
行数: 17W+
字段数:92
sql查询时间: 2.5s
报表列数:50
简单SQL
3、三种模式的对比

对比点 普通 海量-按页取数(旧引擎) 海量-按需加工(新引擎)
取数方式 数据一次性加载完成显示第一页数据 每一页数据都实时从数据库中获取,处理后加载到前端页面 一次性取数到缓存中,翻页时从缓存中取数,处理后加载到前端页面
报表执行时间 33s 15s 5s
翻页执行时间 1.6s 8s 130ms
占用内存 3.8G 下降到 2.6G(完整报表结构缓存) 50M(仅当前页数据及报表结构缓存) 160M(完整数据缓存,报表缓存仅当前页)
汇总数据 执行时机:报表执行时只执行一次
原理:基于数据结果集计算 执行时机:首页执行一次,每次翻页都执行
原理:基于数据视图统计汇总 执行时机:报表执行时只执行一次
原理:基于缓存数据计算
字典表 报表执行时只执行一次 每次翻页都执行 报表执行时只执行一次

4 功能使用指导

4.1 配置

配置比较简单,打开制作的报表,只需要将报表属性中的“数据模式”配置为“海量”,然后引擎模式选择“按需加工”即可,如下图:

两种引擎模式:
按页取数:分页取数(不适用于复杂SQL),即旧引擎;
按需加工:一次性取数,逐页加工显示(更适用于复杂SQL),即新引擎。

注:“新引擎”模式目前仅支持JDBC和存储过程(“普通”类型)数据视图。

4.2 运行效果

  报表使用旧引擎时,数据展示的同时页码就会全部显示出来;而执行使用新引擎的报表,数据量比较大时,页码初始可能显示的不是全部页码,页码会根据获取的数据数量进行动态显示。
数据未加载完时:

数据全部加载完时:

注:数据未加载完成时不支持导出、打印和刷新操作。

5 三种模式功能对比

对比点 普通 海量-按页取数(旧引擎) 海量-按需加工(新引擎)
页码 一次性完整显示 一次性完整显示 动态加载显示
支持的数据视图 全部查询类数据视图 JDBC数据、存储过程(分页)、http查询 JDBC数据、存储过程(普通)
分组 支持 页内分组 页内分组
数据集函数排序 支持,是对所有数据进行排序 仅支持对当前页数据进行排序 仅支持对当前页数据进行排序
数据集函数过滤 支持,是对所有数据进行过滤 仅支持对当前页数据进行过滤 仅支持对当前页数据进行过滤
聚合 导航格内页内汇总,导航格外全部数据汇总 导航格内页内汇总,导航格外全部数据汇总 导航格内页内汇总,导航格外全部数据汇总
悬浮对象 支持 支持,每页都显示 支持,每页都显示
分栏 支持 不支持 不支持
sheet间运算 支持 不支持 不支持
表头表尾 表头第一页显示,表尾最后一页显示 每页都显示 每页都显示
导出(后台导出) 支持,导出全部数据 支持,导出全部数据 数据未加载完成时不支持(禁用),加载完成后支持导出全部数据
导出(插件导出) 支持,导出全部数据 支持,导出当前页数据 数据未加载完成时不支持(禁用),加载完成后支持导出当前页数据,但不支持导出txt和csv
打印 支持,打印全部数据 支持,打印当前页数据 数据未加载完成时不支持(禁用),加载完成后支持打印当前页数据
清除缓存 关闭、刷新 关闭、刷新、翻页 关闭、刷新
耗时 第一次最慢,翻页最快 第一次快,每页执行耗时差不多,翻页相对其他模式慢 第一次比分页模式慢,翻页快
占用内存 最大,完整报表结构缓存 最小,仅一页报表缓存 中,完整数据缓存及一页报表缓存
翻页速度 快,直接报表缓存提取翻页数据 慢,执行数据及报表执行 中,缓存提取数据,报表执行

新引擎是流式计算的,出现首页数据后,可以在点击翻页查看数据,无需等待所有数据处理完。新旧引擎报表展现速度对比如下图所示:
旧引擎:

新引擎:

6 实例地址

所属应用:智能报表实例
模板地址:应用空间\lczReport\高级教程\企业税额汇总_新引擎.hte

作者:fancy  创建时间:2023-06-09 10:09
最后编辑:fancy  更新时间:2024-10-31 17:13