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

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

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

    Java軟件報(bào)表軟件技術(shù)博客

    java報(bào)表軟件技術(shù)匯總 java報(bào)表軟件制作 報(bào)表軟件新聞
    posts - 355, comments - 100, trackbacks - 0, articles - 3
       :: 首頁(yè) :: 新隨筆 ::  :: 聚合  :: 管理
     

     

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

     

    一、數(shù)據(jù)集緩存

    數(shù)據(jù)集緩存分為取數(shù)緩存共享數(shù)據(jù)集

     

    A. 取數(shù)緩存

    FineReport的報(bào)表取數(shù)模型用的是叫做數(shù)據(jù)集(TableData)的二維表模型。而數(shù)據(jù)集緩存指的就是針對(duì)“數(shù)據(jù)庫(kù)查詢”這種數(shù)據(jù)集的取數(shù)過(guò)程所作的緩存。

     

    背景:

    數(shù)據(jù)庫(kù)查詢,就是通過(guò)SQL或者存儲(chǔ)過(guò)程,從數(shù)據(jù)庫(kù)服務(wù)器查詢?nèi)?shù)據(jù)傳送到服務(wù)器以供報(bào)表執(zhí)行用。通常這個(gè)取數(shù)的過(guò)程就是報(bào)表執(zhí)行過(guò)程的一部分,因此報(bào)表的性能很大程度上依賴于取數(shù)的性能,而取數(shù)緩存就是為了解決這種性能問(wèn)題而產(chǎn)生的。特別是數(shù)據(jù)量較大時(shí),合理的使用緩存,可以控制性能表現(xiàn)。

     

    原理:

    我們知道服務(wù)器各個(gè)硬件的I/O性能是不同的,內(nèi)存I/O >> 硬盤I/O >> 網(wǎng)絡(luò) I/O >>”表示遠(yuǎn)快于。在實(shí)際應(yīng)用環(huán)境中,數(shù)據(jù)庫(kù)服務(wù)器和FineReport服務(wù)器通常是在不同的服務(wù)器上,它們之間的數(shù)據(jù)交互必須要通過(guò)網(wǎng)絡(luò)I/O來(lái)實(shí)現(xiàn)。而通常情況下,報(bào)表執(zhí)行過(guò)程中可能對(duì)一條記錄需要使用多次,如果每次都需要到數(shù)據(jù)庫(kù)服務(wù)器上面去查詢?nèi)?shù),不但增加了數(shù)據(jù)庫(kù)的壓力,而且速度也會(huì)很慢。為什么我們不能在第一取數(shù)后,把該數(shù)據(jù)放到本地上的內(nèi)存和磁盤上,從而提高性能。這就是一種“緩存”, 暫且稱為取數(shù)本地緩存

     

    如果把緩存放到本地,那么是放到內(nèi)存還是磁盤上呢?既然內(nèi)存I/O的速度比磁盤快很多,可不可以把所有的數(shù)據(jù)都放在內(nèi)存上?可以是可以,但不一定是最好的選擇。因?yàn)橄嗤萘康膬?nèi)存比磁盤的造價(jià)高很多,所以存儲(chǔ)的成本也要高很多。所以通常情況下,服務(wù)器的內(nèi)存容量也會(huì)比磁盤小很多,如果數(shù)據(jù)庫(kù)的數(shù)據(jù)都放在內(nèi)存上,就很容易造成OutOfMemory。另一個(gè)極端是把所有數(shù)據(jù)都放到磁盤上?這樣也不合算,因?yàn)殡m然空間夠用了,但是速度卻不夠快。所以最好的解決方案是合理的分配內(nèi)存和磁盤,把那些使用頻率最高的數(shù)據(jù)盡量放在內(nèi)存中,從而提高在內(nèi)存中的命中率。這是另一種“緩存”, 我們稱之為取數(shù)內(nèi)存緩存

     

    綜上,可以看出,利用緩存技術(shù)來(lái)優(yōu)化提高性能,是各種硬件性能造價(jià)的差異造成的合理結(jié)果。FineReport致力于研究合理的緩存技術(shù)來(lái)提高報(bào)表的性能。

     

    缺陷:

    緩存能夠很好的提高性能,但是也有一些缺陷,特別是實(shí)時(shí)數(shù)據(jù)敏感的應(yīng)用。但對(duì)于通常的報(bào)表應(yīng)用來(lái)說(shuō),影響并不大。

    1. 拿取數(shù)本地緩存來(lái)說(shuō),數(shù)據(jù)緩存到本地后,在緩存存活有效期,再次取數(shù)時(shí),就不會(huì)到數(shù)據(jù)庫(kù)取數(shù)了。如果此時(shí)數(shù)據(jù)庫(kù)的數(shù)據(jù)發(fā)生了更新,就不能及時(shí)的反應(yīng)到本地。所以緩存會(huì)導(dǎo)致數(shù)據(jù)延遲,可能不是最新的數(shù)據(jù)。但是,這個(gè)數(shù)據(jù)延遲的時(shí)間可以通過(guò)參數(shù)來(lái)設(shè)定。

     

    2. 對(duì)于服務(wù)器的集群來(lái)說(shuō),各個(gè)服務(wù)器之間的緩存需要同步化。比如:當(dāng)客戶端第一次訪問(wèn)報(bào)表服務(wù)器的時(shí)候,A機(jī)器計(jì)算了報(bào)表并在A機(jī)器作了緩存,當(dāng)客戶端第二次訪問(wèn)時(shí),例如此時(shí)跳轉(zhuǎn)到B機(jī)器,B機(jī)器上找不到報(bào)表的緩存,也找不到參數(shù)的緩存,于是只好報(bào)錯(cuò)或者重新計(jì)算。可以通過(guò)提供了集群服務(wù)器之間通訊的能力,解決負(fù)載均衡時(shí)服務(wù)器之間跳轉(zhuǎn)訪問(wèn)帶來(lái)的緩存同步的問(wèn)題。其原理是,首先,客戶端第一次訪問(wèn)報(bào)表服務(wù)器,A機(jī)器計(jì)算了報(bào)表并在A機(jī)器作了緩存,當(dāng)客戶端第二次訪問(wèn)時(shí),例如此時(shí)跳轉(zhuǎn)到B機(jī)器,B機(jī)器根據(jù)緩存id判斷出是A機(jī)器做的緩存,于是B機(jī)器向A機(jī)器發(fā)送緩存請(qǐng)求,A機(jī)器讀取緩存并把緩存結(jié)果發(fā)送給B機(jī)器,B機(jī)器再把結(jié)果返回給客戶端。

     

    使用說(shuō)明:

    1.       取數(shù)本地緩存:服務(wù)器|緩存參數(shù)設(shè)置

    FineReport6.5對(duì)于數(shù)據(jù)庫(kù)數(shù)據(jù)集內(nèi)置了取數(shù)磁盤緩存技術(shù),一般用戶不需要手動(dòng)設(shè)置,上圖顯示了本地磁盤緩存的分頁(yè)大小。是否啟用本地磁盤緩存,會(huì)根據(jù)下面取數(shù)內(nèi)存緩存面板中的“啟用磁盤緩存當(dāng)記錄數(shù)大于”編輯框,當(dāng)編輯框中為0時(shí),表示一直啟用本地磁盤緩存

     

    2.取數(shù)內(nèi)存緩存:

    打開(kāi)報(bào)表設(shè)計(jì)器: 報(bào)表|數(shù)據(jù)集|數(shù)據(jù)集查詢

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

     




    評(píng)論

    # re: 理解FineReport緩存系列1——數(shù)據(jù)集緩存[未登錄](méi)  回復(fù)  更多評(píng)論   

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

    # re: 理解FineReport緩存系列1——數(shù)據(jù)集緩存  回復(fù)  更多評(píng)論   

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

    # re: 理解FineReport緩存系列1——數(shù)據(jù)集緩存  回復(fù)  更多評(píng)論   

    2010-07-17 14:32 by 朱少
    軟件很好很不錯(cuò) 一定要支持
    主站蜘蛛池模板: 一区二区三区免费看| 在线免费观看一区二区三区| 国产区图片区小说区亚洲区| 亚洲精品中文字幕麻豆| 亚洲精品少妇30p| 亚洲国产综合久久天堂| 午夜网站免费版在线观看| 免费观看无遮挡www的视频| 中文在线观看国语高清免费| 特级aa**毛片免费观看| ASS亚洲熟妇毛茸茸PICS| 久久精品蜜芽亚洲国产AV| 日韩亚洲一区二区三区| 狠狠亚洲婷婷综合色香五月排名| 四虎永久在线精品免费观看地址 | 无码人妻一区二区三区免费| 在线观看免费无码专区| 本道天堂成在人线av无码免费| 国产亚洲精品第一综合| 亚洲精品无码久久| 亚洲中文字幕无码久久| 亚洲一区二区三区乱码在线欧洲| 亚洲专区中文字幕| 亚洲另类自拍丝袜第1页| 久久久久亚洲av无码专区喷水 | 免费夜色污私人影院网站电影| 亚洲精品无码久久久久秋霞| 亚洲av无码有乱码在线观看| 亚洲欧美中文日韩视频| 亚洲国产欧洲综合997久久| 亚洲色精品VR一区区三区| 亚洲国产精品免费观看| 亚洲1234区乱码| 亚洲一卡2卡三卡4卡无卡下载| 亚洲偷偷自拍高清| 亚洲人成色99999在线观看| 亚洲日本成本人观看| 18禁亚洲深夜福利人口| 特级毛片A级毛片100免费播放| 一区二区三区精品高清视频免费在线播放 | 久久亚洲最大成人网4438|