反馈已提交

网络繁忙

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

性能分析

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

    1.1 版本

    FineBI 版本
    功能变更
    7.0

    -

    7.0.13

    新增「获取额外信息」开关:可按需导出 traceID、完整 SQL、BI 查询描述

    「导出详细信息」产物由 .xlsx 改为 .zip 压缩包;

    明细 Excel 新增 traceID 列

    「片段内容」列不再记录 SQL 语句,取消 SQL 超 3 万字符分 sheet 逻辑

    1.2 应用场景

    当用户遇到以下问题,即便反复检查仍无法确定原因时,可使用「性能分析」定位耗时环节。

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

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

    3)预览仪表板时,操作速度相对较慢。

    4)编辑组件时,操作响应较为缓慢。

    若问题需要交给数据库管理员(DBA)、帆软技术支持或运维人员进一步分析,通常还需要三类信息,可通过「获取额外信息」一次性拿到:

    1)完整 SQL:交给 DBA 做执行计划分析或在数据库侧复测。

    2)BI 查询描述:还原本次分析用到的维度、指标、过滤、排序,降低问题复现的沟通成本。

    3)traceID:把本次前端查询与后端日志、运维平台链路分析关联起来。

    1.3 功能简介

    FineBI 提供「性能分析」功能,帮助用户快速定位仪表板预览与编辑、组件编辑、自助数据集编辑过程中的性能问题。

    用户可在线查看核心信息与详细信息,也可将信息导出到本地用于协同排查。

    2. 功能入口

    本节说明可以在哪些界面启动性能分析。FineBI 多处支持「性能分析」功能。

    内容位置说明

    数据

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

    组件

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

    仪表板

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

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

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

    3. 查看核心信息

    本节帮助用户在线初步判断性能问题出在哪个环节。

    点击「性能分析」按钮后,弹窗中在线展示本次分析的「核心信息」,按查询逐条列出各阶段耗时。如下图所示:

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

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

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

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

    二级资源名称

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

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

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

    查询的执行计划解析

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

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

    查询执行时间(ms)

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

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

    数据传输时间(ms)

    查询结果返回给FineBI的时间

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

    内存计算时间(ms)

    所有 FineBI 代码的计算时

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

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

    4. 查看详细信息

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

    1)在性能分析弹窗中点击对应「查询ID」,进入该次查询的性能明细页面,查看各执行阶段的耗时与结果集情况。

    2)在明细页面点击「导出查询计划」,可导出该次查询的查询计划文件。

    注:若需要一次性获得该对象所有查询请求的详细信息,请使用「导出详细信息」。

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

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

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

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

    二级资源名称

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

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

    组件类型

    1:分组表

    2交叉表

    3明细表

    4图表

    5自助数据集

    6筛选控件

    7文本组件

    查询IDUUID,每次查询请求的唯一编号
    traceID

    7.0.13 及之后版本新增列,开启「获取额外信息」时记录

    即链路追踪 ID,与 BI 后端日志、运维平台链路分析中的 traceID 一致,可直接用于跨系统关联定位,仅在导出的明细 Excel 中提供

    执行阶段

    1)等待开始阶段

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

    2)查询准备

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

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

    3)SQL 执行

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

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

    4)数据传输

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

    5)内存计算

    直连引擎计算的时间

    6)等待结束

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

    7)前端渲染

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

    • 前端渲染

    片段ID

    一次查询可能有多个查询请求

    例如创建数据连接、SQL 执行、数据传输都可能拆分成多个请求,需分别统计

    7.0.13 及之后版本,片段 ID 同时用于导出包中 SQL 文件与查询描述文件的命名,便于按片段对照查看

    耗时(ms)若该阶段有统计时间,则记录该阶段的耗时
    片段内容

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

    7.0.13及之后版本:SQL 执行阶段不在该列记录 SQL 语句,SQL 统一记录在压缩包内的{fragmentId}_{timestamp}.txt文件中,同时取消 SQL 超过 3 万字符分 sheet 的逻辑

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

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

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

    抽取

    直连

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

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

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

    总合计

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

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

    5. 获取额外信息

    在排查问题时如需获取 traceID、完整 SQL 与 BI 查询描述,用于交付 DBA 调优、研发复现问题与运维做全链路分析,可启用「获取额外信息」开关。

    5.1 操作步骤

    1)进入出现性能问题的仪表板、组件或数据编辑界面。点击「性能分析」,打开性能分析弹窗。

    2)在与「导出详细信息」按钮同一行的右侧区域,打开「获取额外信息」开关。

    4)回到仪表板或数据界面,手动触发一次查询,例如刷新仪表板、切换筛选后点击查询、重新预览组件。

    5)等待查询结束,即可在「性能分析」中导出包含额外信息的内容包。

    注:开关仅记录开启后触发的查询,开启前已完成的历史查询不会补录。因此必须先开启开关,再触发查询。

    5.2 效果说明

    开关开启后,可在导出包中获得下表三类信息。

    额外信息作用获取位置
    traceID与 BI 后端日志、运维平台链路分析中的 traceID 一致,可直接检索本次查询的全链路信息导出包中的性能分析明细 Excel,见新增的 traceID 列
    完整查询 SQL不受字符数限制的完整 SQL,可直接交给 DBA 做执行计划分析或在数据库侧复测导出包中按片段 ID 命名的 .txt 文件
    BI 查询描述本次查询用到的维度、指标、过滤、排序等完整分析上下文,便于研发或技术支持还原分析场景导出包中以 queryRecorders 开头的 .json 文件

    6. 导出信息

    本章说明如何把性能分析信息导出到本地,以及导出包中各文件的用途。

    6.1 操作步骤

    1)在性能分析弹窗中确认需要导出的查询已执行结束。

    2)点击「导出详细信息」按钮。

    3)浏览器下载获取压缩包,按需将文件提供给 DBA、技术支持或运维人员。

    注1:时间戳格式为 yyyyMMdd_HHmmss,取触发导出操作的时间,用于区分多次导出的批次。

    注2:查询执行过程中「导出详细信息」按钮为灰化状态,需等待查询结束后再导出。

    注3:性能分析弹窗中显示了哪些查询的信息,导出内容即包含哪些查询。

    6.2 导出包内容说明

    导出内容为压缩包(.zip),包内文件与开关状态的对应关系如下表所示:

    文件格式文件名内容说明获取额外信息开关关闭获取额外信息开关开启
    性能分析明细.xlsxPerformAnalysisDetail_{时间戳}.xlsx各查询各执行阶段的明细数据,字段说明详见本文「5. 查看详细信息」;新增 traceID 列
    查询 SQL.txt以片段 ID 开头,形如 {片段ID}_{时间戳}_{查询标识}.txt每条 SQL 一个独立文件。若本次导出包含 N 条 SQL,则包内有 N 个 .txt 文件有,SQL 可能被截断有,为完整 SQL,不受字符数限制
    BI 查询描述.json形如 queryRecorders_{片段ID}_{时间戳}_{查询标识}.json开关开启后触发的查询请求的查询描述,每个查询一个独立文件,内容为 JSON 数组

    注:SQL 文件与查询描述文件均以「片段ID」开头命名,可与明细 Excel 中的「片段ID」列一一对照。

    7. 性能反馈

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

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

    8. 注意事项

    8.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计算、渲染和展示的时间之和

    计算逻辑:

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

    异常排查方向:

    分页行数过大

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

    8.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
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持