1. 概述
注:如需使用「模板检测助手」功能,请先安装「新计算引擎」插件
1.1 版本
报表服务器版本 | 新计算引擎插件版本 | 功能变更 |
---|---|---|
10.0.7 | V1.4.1 | - |
10.0.7 | V1.7 | 新增支持决策报表 |
1.2 功能简介
本文将介绍新计算引擎中的「模板检测助手」功能。
2. 操作步骤
模板可通过点击「模板检测助手」对模板的性能进行检测,发现其中可能导致性能出现问题的地方,提醒给用户并提供建议修改方案。
2.1 触发检测方式
2.1.1 手动触发
打开一张模板,点击「模板检测助手」,可对模板进行检测。如下图所示:
2.1.2 保存检测
打开一张未做过检测的模板,进行修改并保存后,将自动对模板进行检测。
2.1.3 预览检测
打开一张未做过检测的模板,对模板进行预览(支持所有预览方式),将自动对模板进行检测。
预览后关闭模板再次打开模板,「检测错误提示」按钮(本文2.2节)才会出现。
2.1.4 其他说明
检测过程中发生中止操作则中止检测(如关闭设计器、切换工作目录),下次正常预览或保存时再重新触发检测。
手动点击「模板检测助手」前,若模板未保存,先触发模板保存提醒。
预览检测方式下:检测未完成时,再次发生预览不触发第二次检测,如果再触发保存将中止未完成的检测重新开始。
2.2 检测错误提示按钮
2.2.1 按钮样式介绍
模板检测后,将会出现「检测错误提示」按钮,该按钮样式如下图所示:
2.2.2 其他说明
手动触发检测后,检测结果界面将以弹窗形式出现;保存或预览触发检测后,可通过点击「检测错误提示」按钮查看结果界面。
若用户对检测出的性能问题进行优化,检测出的问题数字将根据实际情况变化。
生成检测结果后,下次再打开模板,「检测错误提示」按钮依然存在。
2.3 检测错误提示界面
若检测到性能问题,「修改建议」、「自动优化」、「功能建议」三个 Tab 页将根据模板实际情况单独展示或组合展示。
修改建议:将不会自动进行优化,需要用户根据提醒手动修改。
自动优化:展示的是系统已经自动进行优化的部分。
功能建议:针对模板情况向用户推荐可以优化该模板性能的功能。
2.3.1 无性能问题
若暂未检测到性能问题,检测结果页面如下图所示:
2.3.2 修改建议页面
如下图所示:
2.3.3 自动优化页面
如下图所示:
2.3.4 功能建议
如下图所示:
2.3.5 检测失败
检测失败时显示报错弹窗提示:检测出现错误,请在日志中查看失败原因。如下图所示:
2.4 是否自动优化
是否对模板进行自动优化如下表所示:
问题编号 | 问题描述 | 问题建议 | 是否自动优化 |
---|---|---|---|
01001 | 数据集存在冗余取数列,检测到仅有XX、XX、XX数据列实际被使用 | 建议修改sql,减少所取数据列,仅保留需要的数据列 | 否 |
02001 | 单元格存在冗余条件属性,相关条件属性计算已在其父格中重复进行 | 建议删除单元格中与父格一致的条件属性计算 | 是 |
02002 | 单元格存在冗余过滤条件,相关过滤条件计算已在其父格中重复进行 | 建议删除单元格中与父格一致的过滤条件计算 | 否 |
02003 | 隐藏行列中包含部分无意义的条件属性计算 | 建议删除隐藏行列中行高、列宽及分页以外的条件属性 | 是 |
03001 | 单元格存在除数为0计算风险 | 建议对除法计算进行空值判断,例如=IF(B1=0, Ifinity, A1 / B1) | 否 |
04001 | 此行内存在较多列数据,容易出现父子格关系过深影响计算性能 | 建议将除第一个数据列以外的其他数据列都设置父格为第一个数据列,以减少计算父子格关系时的递归调用深度 | 是 |
05001 | 数据列单元格中存在过滤,将交给内存处理,当数据集结果数据较多时将导致性能慢 | 建议去除数据列单元格中的过滤,将过滤条件写入数据集中进行过滤 | 否 |
06001 | 单元格存在扩展的SQL类函数sql,value,map、select),可能出现重复计算导致性能差 | SQL 类函数在每一次扩展后都会额外进行独立计算或执行sql,可能导致重复取数或重复计算 建议排查当前单元格是否需要扩展计算(每行计算内容不同),如不需要可将SQL类函数放在非扩展单元格,再用公式引用此单元格结果用于扩展 | 否 |
06002 | 单元格存在扩展的层次坐标函数,可能导致计算性能差 | 层次坐标的计算性能较差,在扩展后多个层次坐标计算可能进一步降低报表预览性能 建议确认层次坐标函数的使用场景,减少层次坐标扩展使用,更换成其他方式实现需求 | 否 |
06003 | 大数据量明细模板使用分组而不是列表 | 建议将明细表所在行的最左父格修改为列表 | 否 |
06004 | 大数据量明细模板使用分组而不是列表 | 建议将明细表所在行的最左父格修改为列表 | 是 |
06005 | IF方式可能存在重复计算 | 建议使用 NVL 公式,如 IF(SQL(...) = null, aaa, SQL(...)) 转为 NVL(SQL(...), aaa) | 否 |
07001 | 数据集数据量过大,可能占用较多的内存并导致模板预览慢 | 建议在控件中对模板查询时使用的参数进行限制,避免出现不必要的查询全部数据场景,影响预览性能造成服务器压力 | 否 |
08001 | 控件默认值计算时间过长,可能导致模板预览慢 | 控件默认值的sql函数执行过慢 建议控件默认值不要使用sql函数,改为使用value函数或固定值 | 否 |
09001 | 当前模板组件过多,由于浏览器有请求并发限制,可能导致模板加载性能差 | 建议合并模板组件,用尽量少的组件实现同样的效果 | 否 |
30004 | 模板所有背景图过大,可能导致模板加载性能差 | 建议使用外置图片背景插件(点击获取,跳转用插件链接) | 否 |
2.5 关闭模板自动优化
2.5.1 所有模板关闭自动优化
若用户不希望对模板进行自动优化,需要以管理员身份进入平台,点击「管理系统>系统管理>常规」,关闭「模板自动优化」按钮。如下图所示:
2.5.2 单个模板关闭自动优化
在模板的检测错误提示页面中,勾选「不使用自动优化」按钮,可关闭该模板的自动优化。如下图所示:
2.6 关闭检测项
若一些问题用户不希望模板助手进行检测或优化,可使用 FINE_CONF_ENTITY可视化配置 插件,增加一个字段即可。
字段名 | 字段值 |
---|---|
forbiddenRule | 参考本文 2.4 节表格内容决定禁用的检测项,字段值为表格中的「问题编号」,如:「01001,02001」(使用英文逗号分隔) |