内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

報(bào)表數(shù)據(jù)的可控緩存是怎樣的

報(bào)表數(shù)據(jù)的可控緩存是怎樣的,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。

成都創(chuàng)新互聯(lián)長(zhǎng)期為上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為文峰企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì),文峰網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

使用緩存可以提升報(bào)表性能是一個(gè)共識(shí),一般高端報(bào)表工具都會(huì)提供報(bào)表緩存功能,將整個(gè)報(bào)表計(jì)算結(jié)果緩存在文件系統(tǒng)中,以便用戶下次訪問參數(shù)相同的報(bào)表時(shí)可以快速讀取緩存結(jié)果進(jìn)行展現(xiàn)。潤(rùn)乾報(bào)表作為報(bào)表工具的領(lǐng)軍品牌,當(dāng)然也具有這種常規(guī)的緩存功能。

但在有些情況下,報(bào)表開發(fā)人員還希望進(jìn)一步控制緩存的內(nèi)容,比如對(duì)于緩存內(nèi)容,可能只想緩存一部分而不是整個(gè)報(bào)表結(jié)果,或者能夠讓其它報(bào)表或程序復(fù)用緩存內(nèi)容,又比如對(duì)于超時(shí)設(shè)置,可能希望為不同的緩存結(jié)果設(shè)置不同的超時(shí)時(shí)間。這些需求都來自于實(shí)際業(yè)務(wù)中需要應(yīng)對(duì)的數(shù)據(jù)量和實(shí)時(shí)性方面的不同情況,也是一般報(bào)表工具的緩存功能無法滿足的。

潤(rùn)乾報(bào)表內(nèi)置了可編程的數(shù)據(jù)計(jì)算引擎(結(jié)合集算器實(shí)現(xiàn)),允許開發(fā)人員靈活控制緩存內(nèi)容,稱為可控緩存??煽鼐彺婺軌驇砀蟮撵`活性,下面就前面提到的三點(diǎn)展開介紹。

1、緩存部分結(jié)果

在報(bào)表開發(fā)中,有時(shí)并不希望將所有報(bào)表結(jié)果進(jìn)行緩存,避免耗費(fèi)過高的緩存成本(磁盤空間和應(yīng)用服務(wù)器資源開銷)。另外,當(dāng)報(bào)表中的部分?jǐn)?shù)據(jù)實(shí)時(shí)性要求很高,需要實(shí)時(shí)與數(shù)據(jù)庫交互進(jìn)行數(shù)據(jù)查詢,那么就并不適合進(jìn)行緩存。這種情況下,通過潤(rùn)乾報(bào)表的可控緩存可以將變化不太頻繁的中間結(jié)果緩存起來。當(dāng)報(bào)表再次請(qǐng)求時(shí),實(shí)時(shí)性要求高的數(shù)據(jù)仍然從數(shù)據(jù)庫中讀取,同時(shí)結(jié)合緩存中的非實(shí)時(shí)數(shù)據(jù)進(jìn)行報(bào)表計(jì)算,得到最終報(bào)表結(jié)果集。常規(guī)緩存方案中沒有這種緩存部分結(jié)果的功能,只能設(shè)置整個(gè)報(bào)表是否進(jìn)行緩存,這樣報(bào)表在涉及數(shù)據(jù)的不同時(shí)效性時(shí)就必須平衡兩者的矛盾,而潤(rùn)乾報(bào)表在這方面顯然更加靈活,效率更高。

2、緩存結(jié)果復(fù)用

潤(rùn)乾報(bào)表中可控緩存是可以復(fù)用的,一個(gè)報(bào)表的緩存結(jié)果(部分或全部)可以被其他報(bào)表或程序讀取并使用,而不必像常規(guī)報(bào)表緩存方案那樣重復(fù)緩存同樣的結(jié)果,這顯然也會(huì)大幅度提高緩存的整體效率。當(dāng)其他報(bào)表或程序使用某個(gè)報(bào)表的緩存結(jié)果時(shí),只需從緩存(一般是磁盤文件)中讀取,并與報(bào)表中其他數(shù)據(jù)來源(可能是 DB、文件,或是另一個(gè)報(bào)表的緩存)進(jìn)行混合運(yùn)算,就能得到報(bào)表需要的結(jié)果集,處理方式和緩存部分結(jié)果的方式類似。常規(guī)的報(bào)表緩存以報(bào)表模板為單位進(jìn)行緩存,彼此無法復(fù)用,會(huì)造成相當(dāng)?shù)馁Y源浪費(fèi),增加不小的性能開銷,而潤(rùn)乾報(bào)表在這方面同樣體現(xiàn)了靈活和高效。

3、設(shè)置不同超時(shí)時(shí)間

緩存機(jī)制中一定會(huì)有超時(shí)時(shí)間,過時(shí)的緩存會(huì)被清除,報(bào)表再訪問時(shí)再重新緩存。一般報(bào)表工具的緩存超時(shí)時(shí)間在配置文件中設(shè)置,如通常的 3600s 或 7200s,這種設(shè)置往往作用于對(duì)單張報(bào)表的所有參數(shù),有時(shí)甚至作用于所有報(bào)表。換句話說,整個(gè)報(bào)表甚至整個(gè)系統(tǒng)都必須使用同樣的設(shè)置。

這種做法顯然性能不高,如果能夠針對(duì)不同的報(bào)表場(chǎng)景設(shè)置不同的超時(shí)時(shí)間,自然會(huì)更有效。比如,針對(duì)大量歷史數(shù)據(jù)進(jìn)行查詢的報(bào)表,由于歷史數(shù)據(jù)一般很少變化,我們希望報(bào)表的緩存結(jié)果可以保存較長(zhǎng)時(shí)間,相應(yīng)地設(shè)置較長(zhǎng)的超時(shí)時(shí)間;而針對(duì)數(shù)據(jù)變化頻繁,實(shí)時(shí)性要求較高的報(bào)表則設(shè)置較短的超時(shí)時(shí)間,以便滿足數(shù)據(jù)的實(shí)時(shí)性要求。

潤(rùn)乾報(bào)表的結(jié)果緩存允許開發(fā)人員針對(duì)不同的報(bào)表設(shè)置不同的超時(shí)時(shí)間,以應(yīng)對(duì)不同的報(bào)表場(chǎng)景。這種做法同樣提供了更高的靈活性,使得報(bào)表緩存成為真正意義上的可控。

舉例

可控緩存的具體實(shí)現(xiàn)可以參考潤(rùn)乾報(bào)表的相關(guān)文檔資料,這里只是通過一個(gè)簡(jiǎn)單的例子說明一下結(jié)果緩存的使用方法:

首先使用潤(rùn)乾報(bào)表內(nèi)置的集算器編寫腳本生成和讀取緩存文件,這個(gè)過程處于報(bào)表數(shù)據(jù)源的計(jì)算階段。


ABC
1E:\work\esProc\/ 緩存目錄
2=“sales_”+string(d_date)/ 緩存文件名,報(bào)表名 + 參數(shù) (dfxName_ParamName)
3=file(A1+A2)

4if A3.exists()&& interval@s(A3.date(),now())<3600result A3.import@b()end
5=connect(“demo”)

6=A5.cursor(“SELECT 客戶 ID,sum( 單價(jià) * 數(shù)量) 訂單總額 FROM 訂單, 訂單明細(xì) WHERE 訂單. 訂單 ID= 訂單明細(xì). 訂單 ID and year(訂購日期)>? group by 客戶 ID order by 訂單總額 desc”,d_date)

7=A6.fetch(5)>A5.close()
8=A3.export@b(A7)/ 生成緩存文件
9return A7/ 為報(bào)表返回結(jié)果集

上述腳本首先指定緩存目錄,并根據(jù)參數(shù)設(shè)置緩存文件名稱,再根據(jù)文件名查找緩存文件是否存在(A4)。若存在且未超時(shí)則直接讀緩存,否則直接連接數(shù)據(jù)庫取數(shù)運(yùn)算,并將計(jì)算結(jié)果生成緩存文件。

對(duì)比一下,如果報(bào)表中不使用緩存,那么腳本只需要這樣編寫:


AB
1=connect(“demo”)
2=A1.cursor(“SELECT 客戶 ID,sum( 單價(jià) * 數(shù)量) 訂單總額 FROM 訂單, 訂單明細(xì) WHERE 訂單. 訂單 ID= 訂單明細(xì). 訂單 ID and year(訂購日期)>? group by 客戶 ID order by 訂單總額 desc”,d_date)
3=A2.fetch(5)>A1.close()
4return A3

然后,只需要在潤(rùn)乾報(bào)表中調(diào)用上述集算腳本,編輯報(bào)表表達(dá)式就可以完成報(bào)表制作了。

需要注意的是,潤(rùn)乾報(bào)表的可控緩存也有其適用場(chǎng)景,并不能完全取代常規(guī)緩存。常規(guī)緩存手段會(huì)連同報(bào)表計(jì)算結(jié)果以及呈現(xiàn)屬性一起保存,而這里的可控緩存只緩存數(shù)據(jù),在呈現(xiàn)時(shí)還要再次進(jìn)行外觀計(jì)算,因此更適用于數(shù)據(jù)計(jì)算強(qiáng)度較高,外觀計(jì)算強(qiáng)度較低的場(chǎng)景。實(shí)際應(yīng)用中,兩者可以結(jié)合使用。

關(guān)于報(bào)表數(shù)據(jù)的可控緩存是怎樣的問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

網(wǎng)站標(biāo)題:報(bào)表數(shù)據(jù)的可控緩存是怎樣的
轉(zhuǎn)載注明:http://www.rwnh.cn/article4/ghdgie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、自適應(yīng)網(wǎng)站標(biāo)簽優(yōu)化、軟件開發(fā)網(wǎng)站營(yíng)銷、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
年辖:市辖区| 庆城县| 友谊县| 玉林市| 德化县| 柘城县| 贞丰县| 德清县| 合阳县| 正阳县| 灵丘县| 天等县| 莎车县| 乌兰察布市| 姜堰市| 临城县| 新源县| 泰顺县| 合江县| 韩城市| 上虞市| 安国市| 平安县| 碌曲县| 曲阜市| 新营市| 通山县| 怀安县| 余姚市| 娄烦县| 新乡市| 凤山市| 宁海县| 阳江市| 图木舒克市| 永济市| 广州市| 布尔津县| 台南市| 巫山县| 汉寿县|