效能分析

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 * ....這樣的識別符號

傳回結果集行數記錄資料傳輸階段,記憶體計算階段,前端渲染階段的傳回結果集行數
傳回結果集列數記錄資料傳輸階段,記憶體計算階段,前端渲染階段的傳回結果集列數
執行引擎類型

1:SQL 引擎

2:csv 引擎(代表Excel資料集和伺服器資料集)

3:記憶體引擎

開始時間「執行階段」的開始時間
結束時間「執行階段」階段的結束時間
異常資訊當某個階段出現錯誤時,列印報錯資訊
查詢請求合計

記錄本次查詢的所有執行階段耗時總和

記錄本次查詢的開始和結束時間

總合計

記錄所有查詢的所有執行階段耗時總

記錄所有查詢的開始和結束時間

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在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙