反馈已提交

网络繁忙

您正在浏览的是 FineBI6.0 帮助文档,点击跳转至: FineBI5.1帮助文档

性能分析

  • 文档创建者:Wendy123456
  • 历史版本:24
  • 最近更新:Carly 于 2024-01-11
  • 1. 概述

    1.1 版本

    FineBI 版本
    功能变更
    6.0

    1)依赖内置的「FineBI 直连性能分析插件」

    插件默认不启动,需手动启动

    插件版本跟随 JAR 自动更新

    2)仅支持实时数据下的性能分析

    6.0.16

    1)功能不再由插件提供,直接合并至产

    2)支持实时数据和抽取数据下的性能分析

    3)优化执行阶段的耗时计算逻辑

    1.2 应用场景

    当用户遭遇以下问题时,即便进行了反复检查,仍无法确定问题所在,甚至可能导致服务器崩溃。

    • 在创建自助数据集时,某些步骤执行速度较慢。

    • 在预览自助数据集时,某个步骤表现较为迟缓。

    • 在预览仪表板时,发现操作速度相对较慢。

    • 在编辑组件时,注意到操作响应较为缓慢。

    1.3 功能简介

    FineBI提供「性能分析」功能,帮助用户更迅速、更方便地解决以下方面的性能问题:仪表板预览、编辑操作,以及自助数据集的编辑过程。

    1.4 注意事项

    1)FineBI 6.0.16 及之后版本,「性能分析」功能由产品默认提供。

         FineBI 6.0.15 及之前版本,「性能分析」功能依赖产品内置的「FineBI 直连性能分析插件」。

         插件默认禁用,随产品版本自动更新,如需使用「性能分析」功能,请 启用 插件。

    2)FineBI 6.0.16 及之后版本,「性能分析」功能支持实时数据和抽取数据下的性能分析。

         FineBI 6.0.15 及之前版本,「性能分析」功能仅支持实时数据下的性能分析,不支持抽取数据。

    2. 操作步骤

    2.1 执行性能分析

    在FineBI多处支持「性能分析」功能

    内容位置说明

    数据

    「我的分析」主题中,数据编辑界面,支持进行「性能分析」

    组件

    「我的分析」主题中,组件编辑界面,支持进行「性能分析」

    仪表板

    「我的分析」主题中,仪表板编辑界面,支持进行「性能分析」

    「我的分析」主题中,仪表板预览界面,支持进行「性能分析」

    「目录」中查看仪表板时,支持进行「性能分析」

    2.2 查看核心信息

    点击「性能分析」按钮后,在线展示性能分析核心信息。「核心信息」可帮助用户初步判断出现性能问题的原因。

    如下图所示:

    「核心信息」表字段介绍如下表所示:

    字段
    说明
    用户触发性能分析的FineBI用户
    一级资源名称

    性能分析内容为数据时:一级资源名称为数据集名称

    性能分析内容为仪表板时:一级资源名称为仪表板名称

    二级资源名称

    性能分析内容为数据时:二级资源名称为数据集中分析步骤名称

    性能分析内容为仪表板时:二级资源名称为仪表板中组件名称

    查询IDUUID,每次查询请求的唯一编号
    查询等待时间(ms)从用户点击查询到进入查询准备阶段的时间
    查询准备阶段(ms)

    查询的执行计划解析

    查询内容为直连数据时:代表生成 SQL 的阶段

    查询内容为抽取数据时:代表抽取引擎的查询描述生成的阶段

    查询执行时间(ms)

    查询内容为直连数据时:代表直连数据库执行时间

    查询内容为抽取数据时:代表抽取引擎计算时间

    数据传输时间(ms)

    查询结果返回给FineBI的时间

    若直连引擎自己计算,则没有该时间

    内存计算时间(ms)

    所有FineBI代码的计算时

    例如树引擎分页计算,二次计算等

    前端渲染时间(ms)后端计算完毕之后,前端js计算、渲染和展示的时间之和
    总查询时间(ms)从用户点击查询到前端加载完成的总时间
    查询开始时间用户触发性能检测的时间点,精确到秒

    2.3 查看详细信息

    如需进一步确认出现性能问题的原因和了解下一步的处理方式,可查看对应查询的「详细信息」。

    1)在线查看单个查询请求的详细信息:点击对应「查询ID」,查看此次查询的性能明细。

    2)导出此对象的所有查询请求的详细信息:点击「导出详细信息」按钮,导出明细信息表格到本地。

    3)「详细信息」表字段介绍如下表所示:

    数据列名称说明
    用户触发性能分析的FineBI用户
    一级资源名称

    性能分析内容为数据时:一级资源名称为数据集名称

    性能分析内容为仪表板时:一级资源名称为仪表板名称

    二级资源名称

    性能分析内容为数据时:二级资源名称为数据集中分析步骤名称

    性能分析内容为仪表板时:二级资源名称为仪表板中组件名称

    组件类型

    1:分组表

    2交叉表

    3明细表

    4图表

    5自助数据集

    6筛选控件

    7文本组件

    查询IDUUID,每次查询请求的唯一编号
    执行阶段

    1)等待开始阶段

    因为浏览器的限制导致查询之前需要排队

    2)查询准备

    • 执行计划构建:FineBI引擎在拿到查询请求时构建如何组织查询的阶段

    • SQL 生成及 SQL 优化:对应的查询转换成 SQL 以及对 SQL 进行优化的阶段

    3)SQL 执行

    • 创建数据连接:执行前需要获取和数据库的连接

    • SQL 执行:数据库查询执行的时间

    4)数据传输

    数据库返回的结果传给 BI 服务器花的时间

    5)内存计算

    直连引擎计算的时间

    6)等待结束

    等待结束阶段(把仪表的所有组件都打包成一个请求时会有该数据),最先出来的组件要等到最后出来的组件的等待时间

    7)前端渲染

    • 数据传输(BI 服务器-用户浏览器):BI 服务器将数据传给用户浏览器的时间

    • 前端渲染

    片段ID一次查询有可能会有多个查询请求
    例如创建数据连接,SQL 执行,数据传输都可能再被拆分成多个请求,需要分别统计考量
    耗时(ms)若该阶段有统计时间,则记录该阶段的耗时
    片段内容

    创建数据连接阶段记录数据连接名

    SQL 执行阶段记录执行的 SQL ,SQL 超过 3w 字符的,导出的文件会生成两个 sheet ,包含详细信息和超出 3w 字符的 SQL

    如果有临时表注入逻辑,查询 SQL 前面会有,excel insert cost xxx | selcet * ....这样的标识符

    返回结果集行数记录数据传输阶段,内存计算阶段,前端渲染阶段的返回结果集行数
    返回结果集列数记录数据传输阶段,内存计算阶段,前端渲染阶段的返回结果集列数
    执行引擎类型

    抽取

    直连

    开始时间「执行阶段」的开始时间
    结束时间「执行阶段」阶段的结束时间
    异常信息当某个阶段出现错误时,打印报错信息
    查询请求合计

    记录本次查询的所有执行阶段耗时总和

    记录本次查询的开始和结束时间

    总合计

    记录所有查询的所有执行阶段耗时总

    记录所有查询的开始和结束时间

    2.4 性能反馈

    1)用户发现模板问题后,可点击「性能分析>性能反馈」按钮,将模板性能反馈给管理员。如下图所示:

    2)超管收到性能反馈消息提示,可根据反馈督促对应人员优化仪表板/数据集。

    3. 注意事项

    3.1 逻辑详解

    核心信息中的各个时间段,以及详细信息中的各个执行阶段,匹配和计算逻辑可参考下表:

    核心信息

    时间段

    详细信

    执行阶段

    说明
    查询等待时间等待开始阶段

    定义说明:

    从用户点击查询到进入查询准备阶段的时间,因为浏览器的限制导致查询之前需要排队

    一般6个浏览器发送请求未返回时,会阻塞第7个及之后浏览器的请求

    计算逻辑:

    6.0.16及之后:[(请求返回的时间点-开始发请求的时间点)-后端查询消耗的时间点]

    6.0.15及之前:请求返回的响应中服务端开始时间StartTime(BI服务器时间)- 查询请求的开始时间(用户浏览器的时间)(由于浏览器和服务器时区/时间可能不一致,因此存在时间为负数的情况)

    异常排查方向:

    1)查询并发过高

    2)超出浏览器并发限制

    查询准备阶段执行计划构建

    定义说明:

    FineBI直连引擎在拿到查询请求时构建如何组织查询的阶段
    自助数据集生成ETLFlow的阶段

    计算逻辑:

    Widget生成BICriteria或者HyperCriteria的过程

    ETLContext生成ETLFlow的过程

    异常排查方向:

    数据集/模板/组件太复杂

    SQL生成及优化

    定义说明:

    对应的查询转换成 SQL 以及对 SQL 进行优化的阶

    计算逻辑:

    SQL 的生成和优化的时间

    -创建数据库连接

    定义说明:

    SQL执行前,需要获取和数据库的连接

    计算逻辑:

    DataBaseSouceEngine中数据库连接创建的时间

    查询执行时间SQL执行

    定义说明:

    数据库执行查询的时间或TCERID引擎执行时

    由于执行时间包括临时表的时间,因此SQL执行时间可能比日志中要长

    SQL 执行阶段记录执行的 SQL ,SQL 超过 3w 字符的,导出的文件会生成两个 sheet ,包含详细信息和超出 3w 字符的 SQL

    如果有临时表注入逻辑,查询 SQL 前面会有excel insert cost xxx | selcet * ....之类的标识符

    计算逻辑:

    DataBaseSouceEngine中数据库的查询时间

    异常排查方向:

    1)数据库性能问题

    2)SQL语句需要优化

    数据传输时间数据传输(数据库-BI)

    定义说明:

    数据库的查询结果返回给FineBI服务器的时间,

    计算逻辑:

    数据库查询结果集传输到BI服务器的时长+数据压缩时长/数据模型生成时长

    如果没有这两部分,时间为0是正常的

    异常排查方向:

    1)若数据库查询结果集传输到BI服务器的时长过大,请排查服务器网络问题

    2)若数据模型构建耗时过大,请优化分析逻辑

    内存计算时间内存计算

    定义说明:

    直连引擎计算的时间,所有BI代码的计算时间

    计算逻辑:

    自助数据集无内存计算时间,仪表板中包含以下过程:

    分组时间:postGroup time

    排序计算时间:tree sort

    分页计算时间:groupPage procedure time:

    依据排序计算时间:treeSortGist

    树过滤计算时间:groupTreeFilter

    树构建时间:treeMaker time

    异常排查方向:

    查询返回的结果集过大,需要优化分析逻辑

    前端渲染时间数据传输(BI服务器-用户浏览器)

    定义说明:

    FineBI服务器将数据传给用户浏览器的时间

    计算逻辑:

    后端结束的时间点-前端接收到数据的时间点

    前端渲染

    定义说明:

    后端计算完毕之后,前端js计算、渲染和展示的时间之和

    计算逻辑:

    组件最终渲染出来的时间点-前端拿到数据的时间点

    异常排查方向:

    分页行数过大

    总查询时间-从用户点击查询到前端加载完成的总时间
    查询开始时间-用户触发性能检测的时间

    3.2 常见问题

    问题描述
    原因分析
    导出详细信息」按钮为灰色,无法导出

    原因分析正在执行查询中,无法同时导出详细信息

    解决方案:请耐心等待查询结束,即可导出详细信息

    查询等待时间为负数

    原因分析

    6.0.15及之前,查询等待时间=请求返回的响应中服务端开始时间StartTime(BI服务器时间)- 查询请求的开始时间(用户浏览器的时间)

    由于浏览器和服务器时区/时间可能不一致,导致毫秒级的差异,因此存在时间为负数的情况

    解决方案:请升级工程至6.0.16及以上版本,查询等待时间逻辑优化

    查询执行时间为0

    原因分析查询命中了缓存,没有从数据库全新取数

    解决方案:可先修改单表的缓存策略,再进行性能分析

    查询执行时间与后台日志时间不一致

    原因分析

    数据集使用临时表制作,性能分析时会计算临时表的执行时间,而后台日志中不计算此段时间,因此两者不一致

    解决方案:正常情况,无需解决

    总查询时间≠分项耗时合计值

    原因分析

    一个组件可能触发了多个SQL,而多条SQL并不一定是依次执行的。

    查询执行时间=所有SQL执行时间总和

    总查询时间中的查询执行时间=从第一条SQL执行开始,到最后一条SQL执行结束的时长

    两者并不相等,因此总查询时间可能会小于分项耗时合计值

    解决方案:

    单个查询的详细信息中,存在多个SQL生成及优化阶段原因分析

    一个组件可能触发了多个SQL

    例如去重、中位数、fixed等操作,由于需要计算父节点的合计值,就需要发送多条SQL

    解决方案:正常情况,无需解决


    附件列表


    主题: 管理系统
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持