當前為10.0版本文檔,更多實例內容將在最新幫助文檔中展現,點選跳轉至 最新版幫助文檔

性能優化簡介

1. 爲何要性能優化

  • 您是否遇到訪問一張報表時加載時間很長?或者頻繁訪問大數據量報表占用了過多的服務器内存而導緻内存溢出?又或者過多的用戶并發訪問的時候服務器承受壓力過大導緻服務器崩潰?

  • 您是否有這樣的感想,訪問了一張複雜報表,數分鍾後再次訪問了同樣的報表,卻發現還需等待相同的時間才看到結果,這太不人性化!

  • 您是否因爲頻繁地出現請求超時而惱火?

  • 您是否......

若您遇到了以上的種種情況,這說明您的報表系統需要進行性能優化,趕緊行動起來吧,讓您的報表系統運行地更快更順暢!

如果用戶所在場景行式引擎無法支持,則可以試用 新計算引擎插件 ,該插件實現了多數據源情況下的分頁查詢功能,用戶無需再寫複雜的分頁 SQL 或 JS 按鈕,就可以讓報表快速完成首頁加載。
注:該插件支持 Oracle、SQL Server、MySQL、HANA、PostgreSQL、Impala、DB2 等大部分主流 JDBC 數據源。

2. 影響性能的因素

以上種種性能缺陷是如何産生的呢?一般有如下幾方面存在性能問題:

2.1 報表取數

一般來說,報表越複雜,所涉及到的後台數據庫基礎表也就越多。除了格式簡單的列表式報表需要在報表中顯示超大的數據量外,大部分的報表是從幾十萬或者幾百萬的源數據中篩選,運算,返回幾十條或幾百條不等的數據結果。如果取數使用的方法不恰當,報表取數時間就會過長,從而影響性能。

2.2 報表制作

報表制作時往往會使用字段的關聯、高亮、數據字典、公式計算等等報表内置的功能,如果這些功能使用的不正确,或者報表存在多餘的設置,這樣就會因爲這些不必要的設置而增加計算時間,從而影響性能。

2.3 服務器性能

FineReport 作爲純 Java 軟件,可以與 J2EE 的應用無縫集成,集成至服務器的報表就會繼承服務器的資源。服務器的虛拟内存、連接池的設置等等往往會導緻很多性能問題。

3. FineReport 如何優化性能

針對影響性能的因素,FineReport 有不同的優化方案。如對 SQL 的優化,使用存儲過程等優化取數過程;減少冗餘單元格及不必要的設置從而加快報表計算時間;采用并發設置,緩存設置,集群等提高服務器性能等等。

簡而言之,FineReport 性能優化,主要包括兩個方面:一、報表性能優化;二、服務器性能優化。具體優化方法我們将在本章下面進行詳細介紹。

4. 誰需要進行性能優化

這一部分文檔适用於初步掌握了報表設計,且需要對報表的性能做進一步優化的報表設計者;或者報表開發完畢,在向服務器部署的過程中,需要對服務器進行優化的部署工程師。

5. 索引

分類文檔主要優化性能場景
性能優化插件性能優化插件
  1. 合并相同sql,優化相同sql查詢高并發場景下的性能

  2. 優化折疊樹的計算性能

  3. 并行部分數據集取數并緩存,可加快取數速度,避免重複取數

  4. 提供監控sql工具,便於進行取數耗時分析

新計算引擎插件
新計算引擎插件
  1. 自動後台分頁查詢及計算,提升大數據量明細表的查詢性能

  2. 縱向折疊樹報表性能優化,通過前端異步加載/後台異步取數優化折疊樹性能

抽數緩存插件抽數緩存插件
  1. 優化低實時性報表中,取數性能較差的場景

  2. 優化多數據集查詢的低實時性大屏性能

報表性能優化報表執行過程
優化報表取數
優化報表計算時間
巧用相鄰連續分組
服務器性能優化服務器内存修改
模板計算結果緩存

附件列表


主題: 原簡體文檔
  • 有幫助
  • 沒幫助
  • 只是瀏覽

文 檔回 饋

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

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

不再提示

9s後關閉

反饋已提交

網絡繁忙