-
新增「獲取額外資訊」開關:可按需匯出 traceID、完整 SQL、BI 查詢描述;
「匯出詳細資訊」產物由 .xlsx 改為 .zip 壓縮包;
明細 Excel 新增 traceID 欄;
「片段內容」欄不再記錄 SQL 語句,取消 SQL 超 3 萬字元分 sheet 邏輯
當使用者遇到以下問題,即便反覆檢查仍無法確定原因時,可使用「效能分析」定位耗時環節。
1)建立自助資料集時,某些步驟執行速度較慢。
2)預覽自助資料集時,某個步驟表現較為遲緩。
3)預覽儀表板時,操作速度相對較慢。
4)編輯組件時,操作回應較為緩慢。
若問題需要交給資料庫管理者(DBA)、帆軟技術支援或維運人員進一步分析,通常還需要三類資訊,可透過「獲取額外資訊」一次性拿到:
1)完整 SQL:交給 DBA 做執行計劃分析或在資料庫側複測。
2)BI 查詢描述:還原本次分析用到的維度、指標、過濾、排序,降低問題復現的溝通成本。
3)traceID:把本次前端查詢與後端日誌、維運平台鏈路分析聯動起來。
FineBI 提供「效能分析」功能,幫助使用者快速定位儀表板預覽與編輯、組件編輯、自助資料集編輯過程中的效能問題。
使用者可線上查看核心資訊與詳細資訊,也可將資訊匯出到本地用於協同排查。
在FineBI多處支援「效能分析」功能。
資料
「我的分析」主題中,資料編輯介面,支援進行「效能分析」
「我的分析」主題中,組件編輯介面,支援進行「效能分析」
「我的分析」主題中,儀表板編輯介面,支援進行「效能分析」
「我的分析」主題中,儀表板預覽介面,支援進行「效能分析」
本節幫助使用者線上初步判斷效能問題出在哪個環節。
點選「效能分析」按鈕後,線上展示效能分析核心資訊。「核心資訊」可幫助使用者初步判斷出現效能問題的原因。如下圖所示:
「核心資訊」表欄位介紹如下表所示:
效能分析內容為資料時:一級資源名稱為資料集名稱
效能分析內容為儀表板時:一級資源名稱為儀表板名稱
效能分析內容為資料時:二級資源名稱為資料集中分析步驟名稱
效能分析內容為儀表板時:二級資源名稱為儀表板中組件名稱
查詢的執行計劃解析
查詢內容為直連資料時:代表生成 SQL 的階段
查詢內容為抽取資料時:代表抽取引擎的查詢描述生成的階段
查詢內容為直連資料時:代表直連資料庫執行時間
查詢內容為抽取資料時:代表抽取引擎計算時間
查詢結果傳回給FineBI的時間
若直連引擎自己計算,則沒有該時間
所有FineBI程式碼的計算時間
例如樹引擎分頁計算,二次計算等
如需進一步確認效能問題原因、瞭解下一步處理方式,可查看單個查詢的「詳細資訊」。
1)在效能分析彈窗中點選對應「查詢ID」,進入該次查詢的效能明細頁面,查看各執行階段的耗時與結果集情況。
2)在明細頁面點選「匯出查詢計劃」,可匯出該次查詢的查詢計劃檔案。
注:若需要一次性獲得該物件所有查詢請求的詳細資訊,請使用「匯出詳細資訊」。
「詳細資訊」表欄位介紹如下表所示:
1:分組表
2:交叉表
3:明細表
4:圖表
5:自助資料集
6:篩選元件
7:正文組件
7.0.13 及之後版本新增欄,開啟「獲取額外資訊」時記錄
即鏈路追蹤 ID,與 BI 後端日誌、維運平台鏈路分析中的 traceID 一致,可直接用於跨系統聯動定位,僅在匯出的明細 Excel 中提供
1)等待開始階段
因為瀏覽器的限制導致查詢之前需要佇列
2)查詢準備
執行計劃構建:FineBI引擎在拿到查詢請求時構建如何組織查詢的階段
SQL 生成及 SQL 優化:對應的查詢轉換成 SQL 以及對 SQL 進行優化的階段
3)SQL 執行
建立資料連結:執行前需要獲取和資料庫的連結
SQL 執行:資料庫查詢執行的時間
4)資料傳輸
資料庫傳回的結果傳給 BI 伺服器花的時間
5)記憶體計算
直連引擎計算的時間
6)等待結束
等待結束階段(把儀表的所有組件都打包成一個請求時會有該資料),最先出來的組件要等到最後出來的組件的等待時間
7)前端渲染
資料傳輸(BI 伺服器-使用者瀏覽器):BI 伺服器將資料傳給使用者瀏覽器的時間
前端渲染
一次查詢可能有多個查詢請求
例如建立資料連結、SQL 執行、資料傳輸都可能拆分成多個請求,需分別統計
7.0.13 及之後版本,片段 ID 同時用於匯出包中 SQL 檔案與查詢描述檔案的命名,便於按片段對照查看
建立資料連結階段記錄資料連結名
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 * ....這樣的識別符號
抽取
直連
記錄本次查詢的所有執行階段耗時總和
記錄本次查詢的開始和結束時間
記錄所有查詢的所有執行階段耗時總和
記錄所有查詢的開始和結束時間
在排查問題時如需獲取 traceID、完整 SQL 與 BI 查詢描述,用於交付 DBA 調優、研發復現問題與維運做全鏈路分析,可啟動「獲取額外資訊」開關。
1)進入出現效能問題的儀表板、組件或資料編輯介面。點選「效能分析」,開啟效能分析彈窗。
2)在與「匯出詳細資訊」按鈕同一行的右側區域,開啟「獲取額外資訊」開關。
4)回到儀表板或資料介面,手動觸發一次查詢,例如重新整理儀表板、切換篩選後點選查詢、重新預覽組件。
5)等待查詢結束,即可在「效能分析」中匯出包含額外資訊的內容包。
注:開關僅記錄開啟後觸發的查詢,開啟前已完成的歷史查詢不會補錄。因此必須先開啟開關,再觸發查詢。
開關開啟後,可在匯出包中獲得下表三類資訊。
本章說明如何把效能分析資訊匯出到本地,以及匯出包中各檔案的用途。
1)在效能分析彈窗中確認需要匯出的查詢已執行結束。
2)點選「匯出詳細資訊」按鈕。
3)瀏覽器下載獲取壓縮包,按需將檔案提供給 DBA、技術支援或維運人員。
注1:時間戳格式為 yyyyMMdd_HHmmss,取觸發匯出操作的時間,用於區分多次匯出的批次。
注2:查詢執行過程中「匯出詳細資訊」按鈕為灰化狀態,需等待查詢結束後再匯出。
注3:效能分析彈窗中顯示了哪些查詢的資訊,匯出內容即包含哪些查詢。
匯出內容為壓縮包(.zip),包內檔案與開關狀態的對應關係如下表所示:
注:SQL 檔案與查詢描述檔案均以「片段ID」開頭命名,可與明細 Excel 中的「片段ID」欄一一對照。
1)非超管發現範本問題後,可點選「效能分析>效能反饋」按鈕,將範本效能反饋給管理者。如下圖所示:
2)超管收到效能反饋訊息提示,可根據反饋督促對應人員優化儀表板/資料集。
核心資訊中的各個時間段,以及詳細資訊中的各個執行階段,匹配和計算邏輯可參考下表:
核心資訊
時間段
詳細信息
執行階段
定義說明:
從使用者點選查詢到進入查詢準備階段的時間,因為瀏覽器的限制導致查詢之前需要佇列
一般6個瀏覽器傳送請求未傳回時,會阻擋第7個及之後瀏覽器的請求
計算邏輯:
[(請求傳回的時間點-開始發請求的時間點)-後端查詢消耗的時間點]
異常排查方向:
1)查詢併發過高
2)超出瀏覽器併發限制
FineBI直連引擎在拿到查詢請求時構建如何組織查詢的階段自助資料集生成ETLFlow的階段
Widget生成BICriteria或者HyperCriteria的過程
ETLContext生成ETLFlow的過程
資料集/範本/組件太複雜
對應的查詢轉換成 SQL 以及對 SQL 進行優化的階段
SQL 的生成和優化的時間
SQL執行前,需要獲取和資料庫的連結
DataBaseSouceEngine中資料庫連結建立的時間
資料庫執行查詢的時間或TCERID引擎執行時間
由於執行時間包括臨時表的時間,因此SQL執行時間可能比日誌中要長
SQL 執行階段記錄執行的 SQL ,SQL 超過 3w 字元的,匯出的檔案會生成兩個 sheet ,包含詳細資訊和超出 3w 字元的 SQL
如果有臨時表注入邏輯,查詢 SQL 前面會有excel insert cost xxx | selcet * ....之類的識別符號
DataBaseSouceEngine中資料庫的查詢時間
1)資料庫效能問題
2)SQL語句需要優化
資料庫的查詢結果傳回給FineBI伺服器的時間,
資料庫查詢結果集傳輸到BI伺服器的時長+資料壓縮時長/資料模型生成時長
如果沒有這兩部分,時間為0是正常的
1)若資料庫查詢結果集傳輸到BI伺服器的時長過大,請排查伺服器網路問題
2)若資料模型構建耗時過大,請優化分析邏輯
直連引擎計算的時間,所有BI程式碼的計算時間
自助資料集無記憶體計算時間,儀表板中包含以下過程:
分組時間:postGroup time
排序計算時間:tree sort
分頁計算時間:groupPage procedure time:
依據排序計算時間:treeSortGist
樹過濾計算時間:groupTreeFilter
樹構建時間:treeMaker time
查詢傳回的結果集過大,需要優化分析邏輯
FineBI伺服器將資料傳給使用者瀏覽器的時間
後端結束的時間點-前終止收到資料的時間點
後端計算完畢之後,前端js計算、渲染和展示的時間之和
組件最終渲染出來的時間點-前端拿到資料的時間點
分頁行數過大
原因分析:正在執行查詢中,無法同時匯出詳細資訊
解決方案:請耐心等待查詢結束,即可匯出詳細資訊
原因分析:
6.0.15及之前,查詢等待時間=請求傳回的迴應中服務端開始時間StartTime(BI伺服器時間)- 查詢請求的開始時間(使用者瀏覽器的時間)
由於瀏覽器和伺服器時區/時間可能不一致,導致毫秒級的差異,因此存在時間為負數的情況
解決方案:請升級工程至6.0.16及以上版本,查詢等待時間邏輯優化
原因分析:查詢命中了快取,沒有從資料庫全新取數
解決方案:可先修改單表的快取策略,再進行效能分析
資料集使用臨時表製作,效能分析時會計算臨時表的執行時間,而後台日誌中不計算此段時間,因此兩者不一致
解決方案:正常情況,無需解決
一個組件可能觸發了多個SQL,而多條SQL並不一定是依次執行的。
查詢執行時間=所有SQL執行時間總和
總查詢時間中的查詢執行時間=從第一條SQL執行開始,到最後一條SQL執行結束的時長
兩者並不相等,因此總查詢時間可能會小於分項耗時合計值
解決方案:無
一個組件可能觸發了多個SQL
例如去重、中位數、fixed等操作,由於需要計算父節點的合計值,就需要傳送多條SQL
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙