<< Click to Display Table of Contents >> 检测性能复制链接 |
1. 概述
1.1 应用场景
“检测性能”功能主要适用于数据分析师和报表制作者在制作复杂报告时,帮助识别并优化报告中可能影响性能的因素。该功能能够辅助用户完成以下任务:
•提升报告生成效率:自动检测报表生成过程中的性能瓶颈,如大数据量处理、复杂SQL查询等。
•优化报表设计:通过提供具体的性能检测原因和改进建议,帮助用户优化报表结构和查询逻辑。
•避免系统资源过载:及时发现并调整可能导致系统资源过度消耗的配置,保证系统稳定运行。
1.2 功能简介
“检测性能”功能是专为报表制作和性能优化设计的工具。在用户制作报告时,系统会自动对报表性能进行静态检测,识别并报告可能影响报表展示效率和系统稳定性的因素。系统提供详细的检测报告和建议,帮助用户快速定位问题并做出相应调整。
2. 功能说明
2.1 使用说明
1)功能入口:当报告存在性能问题时,报告菜单栏上的“性能帮助”上会出现小红点提醒,用户可以点击【性能帮助>检测性能】查看具体原因和建议,并可以点击“检测性能”中的“下载”将所有性能慢的原因以Excel格式导出,如下图所示:
2)根据检测原因,按情况调整,例如第一步中的提交可以调整为“批量提交”,当用户将检测性能中列出的所有问题按给出的建议全部解决后,红点就会消失。
➢说明:
报表性能检测只在用户制作报告时提示,在预览报告时不会提示。
2.2相关参数配置
•性能检测频率
报表性能检测频率可以通过【系统设置 > 系统参数配置 > 基本参数配置】中的 db.performance.test.interval 属性配置,如下图所示:
默认值为60s,即每分钟检测一次。用户可以根据实际需要调整该值,以平衡系统性能和资源消耗。
➢说明:
首次打开报表或者同时打开多个报表后切换选中报表会对报表性能立即进行检测,其它操作会按属性值进行检测。
•超时检测提示
数据库/集市计算的超时时间、BI内存计算的超时时间检测可以分别通过【系统设置 > 系统参数配置 > 基本参数配置】中的pre.process.timeout 、post.process.timeout配置。
默认值均为10000毫秒,当计算时间超过该值时,系统会弹出超时提示,帮助用户及时发现并处理长时间运行的查询或计算任务。弹出如下的提示。
•保存报告性能检测提示
保存报告时是否弹出检测性能提示可以通过【系统设置 > 系统参数配置 > 基本参数配置】中的db.save.performance.detail属性配置,如下图所示:
默认值为true,表示在保存报告时会弹出提示框列出性能问题。用户可根据需要设置为false,以避免在保存时弹出提示框。这样可以在不影响用户操作体验的情况下,灵活控制性能检测结果的展示方式。
用户制作完报告后,点击“保存”或“另存为”,弹出提示框如下图,
点击“继续保存”,报告保存成功;点击“取消”或“关闭”,用户可以继续制作报告。
4.性能检测问题及解决办法
“检测性能”功能会根据不同的原因将性能问题分为系统原因、报表原因和数据集原因三大类,并给出相应的解决方案。
•系统原因
当用户将一些数据量相关的属性值修改的超过默认值后,可能会引起产品计算的压力太大,对此我们会进行提示并收集到系统原因中。
1)过滤组件或参数组件的最大行数限制
设置的过滤组件或参数组件的最大行数list.qry.maxrow超过了默认值10000,会弹出提示,如下图所示:
用户点击“确定”强制修改该值后,如果报告里存在过滤组件或参数组件时,系统原因会收集并提示此信息,如下图所示:
解决方法:在系统设置>系统参数配置>数据量参数配置中修改 list.qry.maxrow 参数值。
2)自由式表格或自由式填报表格的大小限制
设置的freestyle.max.size超过了默认值500000。
如果报告中存在自由式表格或自由式填报表格,会将性能检测信息收集到系统原因中。
解决方法:一些使用自由式表格的格间计算场景,实际上通过计算列一样可以计算出来,可以考虑改为计算列后再绑定;您也可以修改bi.properties里freestyle.max.size默认值,但默认值太大可能会增大报表负荷,造成卡顿。
3)参数可选值的最大行数限制
设置的参数可选值browseParamlist.maxrow的最大行数超过默认值5000。
如果报告中存在弹出参数,且可选值来自于数据集,会将性能检测信息收集到系统原因中。
解决方法:可以到系统设置>系统参数配置>数据量参数配置中修改browseParamlist.maxrow参数值,可选参数值不宜太大,否则可能会造成卡顿。
4)数据加载行数限制
设置的组件的加载数据行数max.load.rows超过了默认值5000000。
如果报告中存在表格,交叉表,自由式表格、图表,且绑定了数据,会将性能检测信息收集到系统原因中。
解决方法:可以到【系统设置 > 系统参数配置 >数据量参数配置】中修改max.load.rows参数值,不能超过上限1000000000。
5)CSV导出行数限制
如果设置的导出csv的行数csv.max.row超过了限制5000000。
如果报告中存在表格,交叉表,自由式表格、图表,且绑定了数据,会将性能检测信息收集到系统原因中。
解决方法:可以到bi.properties中修改csv.max.rows参数值并重启。
6)交叉表组件行数限制
如果设置的交叉表的行数pivot.max.row超过了默认值500000
如果报告中存在交叉表组件或自由式表格组件,且绑定了数据,会将性能检测信息收集到系统原因中。
解决方法:可以到bi.properties中修改pivot.max.row参数值并重启。
7)图表组件轴标签数量限制
设置的轴标签的最大个数chart.axis.label.max.count超过了限制5000
如果报告中存在图表组件,且绑定了数据,会将性能检测信息收集到系统原因中。
解决方法:可以到bi.properties中修改chart.axis.label.max.count参数值并重启。
•报表原因
用户在制作报告新增的计算列如果不能下推到数据库执行,会显示为橙色标识,且鼠标悬浮在该列上有性能检测提示,如下图所示:
当报表有以下几种情况时,会收集到报表原因中:
1)组件上使用的SQL数据集中,列不能下推到数据库执行,或组件的过滤中设置的过滤条件不能下推到数据库执行
提示如下图所示:
解决方法:在制作报表前,可以先对数据集进行过滤,只留下有效的数据,减少内存负荷。
2)过滤组件或者参数组件没有勾选默认值且空选项策略设置为全部数据,即一次性把所有的数据都展示出来
提示如下图所示:
解决方法:给过滤组件、参数组件设置默认值,让图表组件展示少部分数据或者空数据。
3)组件上使用的SQL数据集中,列为逻辑判断类型的细节表达式(表达式中有if语句)
提示如下图所示:
解决方法:可以用过滤列代替计算列。
4)组件中维度绑定的个数超过10个,提示如下图所示:
解决方法:将与分析无关的数据字段从绑定区域移除,建议绑定的维度不超过10个。
5)报告中有多个筛选条件时。
提示如下图所示:
解决方法:在报告中添加批量提交按钮,勾选全部过滤条件后批量提交再执行筛选,提高执行效率。
6)对于已经支持了分页的数据库,在制作明细表时没有使用分页
提示如下图所示:
解决方法:在组件设置里面勾选“分页”,每页展示适量的数据行数,减少内存消耗。
•数据集原因
1)当报表组件依赖的数据集(SQL数据集/自服务数据集/组合数据集)中有不能下推到数据库执行的列/操作,或者SQL数据集的过滤中的过滤条件不能下推到数据库执行时,会将此信息收集到数据集原因中,提示如下图所示:
解决方法:Mongo计算列尽量使用管道命令,数据集在进行关联计算之前先过滤出有效的数据,可以降低需要进行联接的数据量,提高性能,减少不必要的字段进行计算等。
2)在数据集和报告的静态性能检测中,对mpp执行做检测。执行计划中行数超过一定数量。
提示如下图所示:
解决方法:该限制受dc.perf.query.maxrow参数控制,默认为10000000。
3)两个入集市的数据集做了联合查询时判断是否满足map-side join,不满足则进行性能提示。
提示如下图所示:
解决方法:抽取数据时勾选分片列再入集市。