<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Java軟件報表軟件技術博客

    java報表軟件技術匯總 java報表軟件制作 報表軟件新聞
    posts - 355, comments - 100, trackbacks - 0, articles - 3
       :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理
     

     

    FineReport緩存技術包括數據集緩存模板結果共享緩存,合理的使用緩存可以有效的提高性能。

     

    一、數據集緩存

    數據集緩存分為取數緩存共享數據集

     

    A. 取數緩存

    FineReport的報表取數模型用的是叫做數據集(TableData)的二維表模型。而數據集緩存指的就是針對“數據庫查詢”這種數據集的取數過程所作的緩存。

     

    背景:

    數據庫查詢,就是通過SQL或者存儲過程,從數據庫服務器查詢取數據傳送到服務器以供報表執行用。通常這個取數的過程就是報表執行過程的一部分,因此報表的性能很大程度上依賴于取數的性能,而取數緩存就是為了解決這種性能問題而產生的。特別是數據量較大時,合理的使用緩存,可以控制性能表現。

     

    原理:

    我們知道服務器各個硬件的I/O性能是不同的,內存I/O >> 硬盤I/O >> 網絡 I/O >>”表示遠快于。在實際應用環境中,數據庫服務器和FineReport服務器通常是在不同的服務器上,它們之間的數據交互必須要通過網絡I/O來實現。而通常情況下,報表執行過程中可能對一條記錄需要使用多次,如果每次都需要到數據庫服務器上面去查詢取數,不但增加了數據庫的壓力,而且速度也會很慢。為什么我們不能在第一取數后,把該數據放到本地上的內存和磁盤上,從而提高性能。這就是一種“緩存”, 暫且稱為取數本地緩存

     

    如果把緩存放到本地,那么是放到內存還是磁盤上呢?既然內存I/O的速度比磁盤快很多,可不可以把所有的數據都放在內存上?可以是可以,但不一定是最好的選擇。因為相同容量的內存比磁盤的造價高很多,所以存儲的成本也要高很多。所以通常情況下,服務器的內存容量也會比磁盤小很多,如果數據庫的數據都放在內存上,就很容易造成OutOfMemory。另一個極端是把所有數據都放到磁盤上?這樣也不合算,因為雖然空間夠用了,但是速度卻不夠快。所以最好的解決方案是合理的分配內存和磁盤,把那些使用頻率最高的數據盡量放在內存中,從而提高在內存中的命中率。這是另一種“緩存”, 我們稱之為取數內存緩存

     

    綜上,可以看出,利用緩存技術來優化提高性能,是各種硬件性能造價的差異造成的合理結果。FineReport致力于研究合理的緩存技術來提高報表的性能。

     

    缺陷:

    緩存能夠很好的提高性能,但是也有一些缺陷,特別是實時數據敏感的應用。但對于通常的報表應用來說,影響并不大。

    1. 拿取數本地緩存來說,數據緩存到本地后,在緩存存活有效期,再次取數時,就不會到數據庫取數了。如果此時數據庫的數據發生了更新,就不能及時的反應到本地。所以緩存會導致數據延遲,可能不是最新的數據。但是,這個數據延遲的時間可以通過參數來設定。

     

    2. 對于服務器的集群來說,各個服務器之間的緩存需要同步化。比如:當客戶端第一次訪問報表服務器的時候,A機器計算了報表并在A機器作了緩存,當客戶端第二次訪問時,例如此時跳轉到B機器,B機器上找不到報表的緩存,也找不到參數的緩存,于是只好報錯或者重新計算。可以通過提供了集群服務器之間通訊的能力,解決負載均衡時服務器之間跳轉訪問帶來的緩存同步的問題。其原理是,首先,客戶端第一次訪問報表服務器,A機器計算了報表并在A機器作了緩存,當客戶端第二次訪問時,例如此時跳轉到B機器,B機器根據緩存id判斷出是A機器做的緩存,于是B機器向A機器發送緩存請求,A機器讀取緩存并把緩存結果發送給B機器,B機器再把結果返回給客戶端。

     

    使用說明:

    1.       取數本地緩存:服務器|緩存參數設置

    FineReport6.5對于數據庫數據集內置了取數磁盤緩存技術,一般用戶不需要手動設置,上圖顯示了本地磁盤緩存的分頁大小。是否啟用本地磁盤緩存,會根據下面取數內存緩存面板中的“啟用磁盤緩存當記錄數大于”編輯框,當編輯框中為0時,表示一直啟用本地磁盤緩存

     

    2.取數內存緩存:

    打開報表設計器: 報表|數據集|數據集查詢

    如上紅色箭頭所指編輯框,就是取數內存緩存設置的地方,編輯框中的數字表示查詢結果記錄集的記錄數大于多少時啟用本地磁盤緩存,否則使用取數內存緩存,-1表示全部緩存到內存。

     




    評論

    # re: 理解FineReport緩存系列1——數據集緩存[未登錄]  回復  更多評論   

    2010-07-14 21:21 by 何小妖
    支持共享緩存

    # re: 理解FineReport緩存系列1——數據集緩存  回復  更多評論   

    2010-07-16 17:07 by 圣光永恒
    文章很不錯,軟件用過,也很好用,支持了:-D

    # re: 理解FineReport緩存系列1——數據集緩存  回復  更多評論   

    2010-07-17 14:32 by 朱少
    軟件很好很不錯 一定要支持
    主站蜘蛛池模板: 女人被男人桶得好爽免费视频 | 羞羞视频在线免费观看| 亚洲中文字幕无码久久| 亚洲色最新高清av网站| 男男AV纯肉无码免费播放无码| 在线观看成人免费| 亚洲熟妇无码AV不卡在线播放| 欧美a级成人网站免费| 亚洲人成欧美中文字幕| 成人片黄网站色大片免费观看cn| 国产免费一区二区视频| 国产免费AV片在线播放唯爱网| 全部免费毛片免费播放| 蜜芽亚洲av无码精品色午夜| 亚洲AV无码精品国产成人| 国产午夜精品久久久久免费视 | 亚洲AV日韩综合一区尤物 | 亚洲制服丝袜在线播放| 亚洲av纯肉无码精品动漫| 国产18禁黄网站免费观看| 久久久久亚洲av无码专区| 久草视频免费在线| 亚洲中文字幕无码永久在线 | 久99久无码精品视频免费播放| 99视频全部免费精品全部四虎 | 亚洲中文字幕无码一久久区| 国产乱子伦精品免费视频| 亚洲成a人片77777kkkk| 麻豆狠色伊人亚洲综合网站 | 可以免费观看的毛片| 亚洲国产精品无码av| 日韩电影免费在线观看中文字幕| a级毛片免费全部播放无码| 野花香高清视频在线观看免费 | 久久亚洲国产视频| 亚洲精品成人久久| 色www免费视频| 激情97综合亚洲色婷婷五| 无码日韩精品一区二区三区免费| 美女在线视频观看影院免费天天看| 亚洲日韩精品射精日|