您正在浏覽的是 FineBI 7.X 幫助文檔,點選跳轉至 FineBI 6.X 幫助文檔。

效能分析

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. 操作步驟

2.1 執行效能分析

在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後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙