反馈已提交

网络繁忙

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

性能分析

  • 文档创建者:Wendy123456
  • 历史版本:27
  • 最近更新:Carly 于 2026-09-03
  • 1. 概述

    1.1 版本

    FineBI 版本
    功能变更
    7.0

    -

    1.2 应用场景

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

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

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

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

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

    1.3 功能简介

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

    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个及之后浏览器的请求

    计算逻辑:

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

    异常排查方向:

    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后关闭



    AI

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