範本效能問題排查方法

1. 概述

範本的載入速度受到很多因素影響,如果一個範本預覽的時候,載入較慢,該如何去分析問題原因呢?

2. 排查步驟

2.1 查看資料集查詢速度

大部分範本載入慢,都是因為 sql 執行速度比較慢。那麼如何驗證 sql 速度快慢呢?可以使用以下幾種方案。

1)在設計器的資料集中直接查詢,人為感受 sql 的執行速度-----設計器查詢慢可考慮更換驅動。

2)將範本匯出為內建資料集進行預覽,查看速度是否變快。-----匯出內建資料集後預覽變快說明是取數環境慢,優化 sql 或資料庫效能。

3)安裝 效能插件 ,使用平台裏的 sql 執行監視功能,查看 sql 執行速度以及執行次數。如果是執行次數過多導致的慢,可以試試 抽數快取 功能。

4)使用 抽數快取介紹 ,查看速度是否變快。-----開了快取變快,說明是資料集本身查詢速度不佳。

2.2 查看範本結構

排除掉 sql 原因後,接下來就應該分析下,範本元素是否過於複雜,或者有一些不合理的設定。下面列舉幾類常見的問題設定。

2.2.1 設定過多過濾

如下圖所示,第一欄為手寫,後面的欄位重複拖入,且每個都設定了過濾。例子的範本還是最簡單的,實際情況下這種結構的範本大多比較複雜,會導致大量的重複計算,影響效能。

2.2.2 過多的條件屬性/過濾/動態參數注入/形態設定

當看到範本中有大量的黃色/藍色/紅色小三角時,就可以得知範本中使用了大量的過濾和判斷或是形態設定,勢必會影響效能。

2.2.3 不合理父格設定/笛卡爾積

此類情況通常可以透過修改父格,優化範本結構來解決,可參見:防止填報笛卡爾積

2.2.4 範本中有較大的圖片

範本中如果插入了較大的圖片、展示了較多的圖片,對效能也會有一定影響,可以考慮下述優化:

2.2.5 範本展示的時候格子數量過多

當資料較多或者範本結構較複雜的時候,後台計算範本的時候會產生大量的格子數,前端展示的時候也會比較慢。所以,對於資料量,儘量不要一次展示太多資料,可以考慮分頁 sql ,或者使用 新計算引擎

2.2.6 圖表過多

大量使用圖表會造成前端渲染速度下降,瀏覽器當機,所以設計範本的時候不能濫用圖表。

2.2.7 函式的不合理使用

範本中如果使用了較多的sql函式,value函式,資料集函式等,或者sql函式本身執行的速度較慢,也會導致範本預覽變慢。

2.2.8 前端樣式

大量使用 JS 或者 CSS 語句去修改了範本元素樣式,也會對範本效能產生影響。

2.2.9 全局參數

全局參數是不管頁面是否呼叫,都會跟隨載入,對載入速度有一定影響

2.2.10 全局水印

全局水印設定是否寫了sql函式進行取數,sql函式那邊取不到資料或取數慢,所有的範本都有需要等sql函式取數逾時之後才能夠顯示出來,就導致所有的範本預覽慢,可以透過關掉全局水印進行測試

2.2.11 sheet名

注意sheet名是固定值還是公式,如果是使用公式,且公式有一些參數計算,可能會影響範本計算速度。

如果是這種情況,可以先將sheet名修改成預設值排查

2.2.12 按鈕元件裏的參數預設值計算過久

按鈕元件元件裏的參數預設值也是在初始化時計算的,不是在點選的時候才計算,如果按鈕元件裏大量呼叫sql函式,並且計算時間較久,也會對範本載入時間產生影響。比如客戶用來實現重置所有元件值的按鈕,大量呼叫sql函式用來計算元件預設值,就對範本計算產生了影響。

2.2.13 空白行

範本中存在空白行可能也會影響速度。

2.2.14 紙張背景

檢查範本紙張背景的設定,範本紙張不要設定得過大,且當紙張背景設定為紋理時,可能會影響效能。

可以考慮調整紙張大小設定和更換紙張背景設定。

3. 查看網路請求

1)可以透過F12的Network模組去查看一張範本的所有請求速度,分析是否有時間過長的請求,以及該請求的作用。

2)滑鼠懸浮Waterfall可以看到請求各個階段的時長。如果一個請求時間過長,可以先排查下是否由於做了映射導致。

3)Size列可以識別相關資源是否從快取讀取。從快取讀取的資源一般不會影響效能。

4. 其他設定

1)日誌級別

降低日誌級別,比如可從debug調整成error。

2)資料庫是否外置

內建資料庫效能較一般,可以考慮將finedb資料庫外置。

3)根據併發數調整中間軟體(比如tomcat)的執行緒數、業務資料庫的連結池。

4)關閉平台快取中的「總是重新讀取範本」按鈕。

5)安裝 效能插件

6)安裝 抽數快取介紹 :如果範本存取情況是僅首次存取慢,可以考慮安裝抽數快取插件進行優化

7)報表分頁組件插件 導致。

現象:

  • 報表資料量大,範本載入時間長

  • 參數面板載入很久

對於資料量大的報表,連參數面板都一直載入不出來的話可以考慮是「報表分頁組件插件」導致的,此插件計算把頁面計算邏輯放在了最前面,進而導致範本載入時間遠遠超出sql取數時間。

5. 總結

範本的載入,需要經過取數、計算、渲染等階段,每個階段都會有影響速度的因素,所以需要依次排查。在排查程式中,可以使用二分法,儘量減少範本元素,定位到對效能影響最大的部分。


附件列表


主題: 效能優化
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

7s后關閉

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

反馈已提交

网络繁忙

反饋已提交

網絡繁忙