1. 概述
大數據量範本排查思路如下圖所示:
注1:圖片上不同情況對應的解決方案請參見本文 2.2 節表格內容。
注2:圖片上數倉為解決方案之一,為使用者提供一個思路,具體介紹請自行百度;FineReport 官方文檔只介紹產品相關內容。
2. 排查節點
2.1 區分取數慢還是範本載入慢
將大數據範本 匯出內建資料集 再預覽,排除 SQL 取數這部分耗時,驗證範本本身計算和載入的耗時是否長。
注意匯出時使用的參數和預覽保持一致,因為參數常常會有顯示值/實際值,或者某些系統參數的情況,推薦在參數面板做一組獲取元件值的正文元件。
1)如果匯出內建資料集的過程很快,則可以確認是範本設計問題,一般此類內建資料範本預覽也會比較慢,此時往範本計算慢上定位。
注:參數注入導致的效能問題,匯出、預覽都可能比較快,此時同樣關注範本計算慢。
2)如果匯出內建資料集的過程慢,預覽很快的話則確認是取數的問題,往 SQL 上定位。
3)對於匯出內建資料集的過程慢,預覽也慢的情況則要視情況分析,有可能出現範本設計與取數都有問題的情況,也可能只是資料量大,此時最好把兩方面都做排查。
2.2 細分使用場景
若定位到是取數導致的整體效能慢,需要判斷範本是以匯出用法為主,還是預覽用法為主。
若定位到是範本計算慢,則需要思考是否必須要用實時資料。
針對不同的場景可以參考下表:
問題痛點 | 應用場景 | 解決方案 | 備注 |
---|---|---|---|
取數慢-匯出 | 資料集直接匯出 Excel | 大資料集匯出Excel插件 | 應對需要直接匯出資料集資料的場景,通常對應資料集量會比較大,且一般對應資料集不會在 body 裏被用到,用到了一般也不會明細展示。最極端的情況是範本只載入到參數面板而不需要預覽 body ,直接在參數面板實現資料集的匯出 |
預覽後匯出 body 內容 | Excel 流式匯出支援列式引擎插件 | - | |
後臺匯出 | 後臺批量匯出Excel | 會將檔案匯出到伺服器,適用於客戶不需要直接預覽場景 | |
排程管理匯出 Excel | 排程管理 | 適用每日定時匯出日報資料等,且透過郵件接收匯出的 Excel 的場景,一般是需要預覽範本內容的場景 | |
取數慢-預覽 | 透過參數、配置等限制資料,且客戶接受對應限制的場景 | 1)通過限定參數非空,需要用戶自己優化 SQL ,SQL 限定取出數量等方法 2)建議通過 範本限制 ,限制模板的單元格個數、sql 執行時長,單數據集行數等 | - |
分頁預覽,資料源資料量大 | 每類方法有特定的適用庫範圍,不支援的庫不支援本方法 | ||
優化低實時性報表中,取數效能較差的場景 | 抽數緩存插件使用步驟 | ||
計算慢-數據非實時 | 优化低实时性报表中,取数性能较差的场景 | 抽數緩存插件使用步驟 | - |
每天定時郵件查看資料、及匯出無即時性要求的場景 | 排程管理 | 排程管理-結果連結 為實時計算 | |
計算慢-資料實時 | - | 大數據量範本優化思路 |