報表效能最佳化方案之資料集緩衝與共用

來源:互聯網
上載者:User

標籤:

1. 問題描述

對於大資料量報表,若每次直接從資料庫中查詢資料,不僅增加資料庫伺服器的壓力,也極大的影響了取數的速度從而降低了報表的執行速度,為此FineReport提供了資料集緩衝與共用功能。

FineReport可先將其資料集查詢的結果緩衝下來,對於緩衝下來的資料,再次使用到相同資料集時,無需再次串連資料庫重新查詢資料,直接使用緩衝下來的結果,即使用FineReport的資料集共用機制,達到資源複用,減少取數時間從而提高了報表的展現速度。

2. 資料集緩衝

緩衝分為緩衝至記憶體和緩衝至磁碟。

2.1 緩衝至記憶體

設定方法:預設的就是使用記憶體緩衝即所有資料都儲存在記憶體中,在資料庫查詢時段可以看到,如:

 

設定後的效果:當執行資料集時就會在將此記過緩衝至記憶體中,下次在執行此資料集時,會直接從記憶體緩衝中取數。

優缺點:空間資源有限,但效率很高,取數速度快。

什麼情況使用:一般使用率高,且資料量不算太大的報表,可直接使用記憶體緩衝。

2.2 緩衝至磁碟

設定方法:點擊下拉框選擇緩衝至磁碟當記錄大於,並設定行數,如下:

 

緩衝至磁碟,即將資料緩衝到伺服器的磁碟中,預設是在C:\Documents and Settings\Administrator\.FineReport8.0\cache(windows作業系統)下。

註:如啟用了磁碟緩衝,發現系統目錄下沒有cache檔案夾,不要感到驚訝,雖然啟用了磁碟緩衝,但不是馬上開始把資料寫到磁碟中,而是會考慮系統的實際運行情況然後再進行處理。

設定後的效果:記錄數預設大於0行:表示從第0條資料開始,使用磁碟緩衝。即只採用磁碟緩衝,取出的資料是全部放在磁碟中。

記錄數大於如1000行:表示取得的資料前1000條是放入記憶體中,剩餘部分緩衝至磁碟,當用到1000條以外的資料時,就會從磁碟中讀取資料。

優缺點:空間資源又大又便宜,幾乎沒有限制;但效率低,取數速度往往很慢。

什麼情況使用:若是資料量很大的報表,如:幾十萬條記錄,可使用緩衝至磁碟,設定恰當的行數,避免全存在記憶體中,導致伺服器OutOfMemory記憶體溢出。

如行式引擎報表,可以將使用率高的前N頁資料緩衝在記憶體,剩餘記錄緩衝在磁碟中。

註:既然兩者都有優缺點,因此需要合理分配記憶體和磁碟,把那些使用頻率最高的資料盡量放在記憶體中,從而提高在記憶體中的命中率。

3. 資料集共用

設定了資料集緩衝後,只對當前資料集再查詢時才能讀取緩衝中的資料,若多個模板包含有相同的資料集(定義的SQL查詢語句相同,傳入的參數值相同,才算相同的資料集),便可以啟用資料集共用,使得他們共用同一個緩衝結果,從而節省資料庫資源,並且提高取數和報表的展現速度。

3.1 設定方法

在定義資料連線的地方勾選是否共用資料集,如所示:

 

註:資料集緩衝是對當前資料集有效,而共用資料集是對不同模板的相同資料集有效,並且需要將需要共用的資料集都勾選上。

3.2 資料集共用屬性設定

我們可以對緩衝下的結果進行一些設定。

進入FR平台中,選擇管理系統>系統管理>緩衝,可以看到資料集共用屬性如所示:

 

最大使用中的物件:指在緩衝容器中最大放置的緩衝對象個數,如果使用中的物件數超過此數目,則伺服器會根據下面的緩衝策略來選擇哪些對象留下,哪些被去除

最大存留時間:指的是緩衝對象在容器中存活的最大時間,無論是否活動,一旦超過此時間,此緩衝對象就失效,將會被移除

最大空閑時間:指的是緩衝對象在容器中停留不被使用不能超過的時間,也就是閒置時間,如果閒置時間超過這個時間,此對象就會被移除。

註:管理系統>系統管理>緩衝,下方的模板緩衝屬性設定,是對模板計算的結果進行緩衝設定,而上面所說的在資料集處的緩衝設定則是對資料進行緩衝設定,一個是對結果來說,一個是對於資料來說,要區別開來,這是兩個不同的概念。

報表效能最佳化方案之資料集緩衝與共用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.