1. 概述
1.1 應用場景
對報表進行存取時,若範本的資料計算量很大,每次存取都會從伺服器端重新讀取資料進行計算,這樣就加大了伺服器的壓力並且導致存取報表的速度變慢,為此可以設定範本計算結果快取來解決這一問題。
1.2 功能簡介
設定範本計算結果快取後,當存取過的範本再次被存取時,直接從快取中讀取計算結果,來減小伺服器的壓力以及提升報表的存取速度。
1.3 原理
原理說明如下所示:
用戶端 A 存取伺服器上的報表設計範本,從資料庫中讀取,生成想要的範本結果檔案,快取到記憶體中,並傳回用戶端 A。
而客戶 B 存取伺服器上此範本時,若傳回的結果與用戶端 A 存取傳回的結果相同,則不從資料庫中讀取,而是直接讀取A快取的範本資料,然後傳回用戶端 B。
注1:目前只支援 cpt 範本計算結果快取。
注2:讀取範本計算結果快取必須滿足:同一張範本且擁有相同的參數。
2. 操作步驟
範本計算結果快取有兩種開啟方式,且這兩種開啟方式的快取資料有效期不同。
2.1 使用__cache__參數開啟
在存取報表的路徑後加 &__cache__=true,表示該報表啟動計算結果快取,如下所示:
http://localhost:8075/webroot/decision/view/report?viewlet=GettingStarted.cpt&__cache__=true
注1:只要系統沒有 GC(Garbage Collections) ,快取會一直保留。
注2:從快取中讀取資料時 URL 後面也要加 &__cache__=true 。
2.2 設定報表快取有效時間
在 FineReport 設計器中,點選「範本>範本 Web 屬性>基本」,填寫「報表快取有效時間」即可開啟,設定頁面如下圖所示:
注:「報表快取有效時間」的值為大於 0 的整數,到達有效時間後,快取資料清空。