專利名稱::基于oltp環(huán)境的統(tǒng)計(jì)表應(yīng)用方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用領(lǐng)域,尤其涉及一種基于OLTP環(huán)境的統(tǒng)計(jì)表應(yīng)用方法及系統(tǒng)。
背景技術(shù):
:計(jì)算機(jī)應(yīng)用早已涉足各領(lǐng)域,運(yùn)用計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行電子商務(wù)以及進(jìn)行統(tǒng)計(jì)表的應(yīng)用已是時(shí)代潮流。統(tǒng)計(jì)表是建立在對(duì)基表的統(tǒng)計(jì)基礎(chǔ)上的一個(gè)匯總表,在OLTP(OnLineTransactionProcessing,聯(lián)機(jī)事務(wù)處理)的高可用的環(huán)境下,基表數(shù)據(jù)量通常比較寵大,且數(shù)據(jù)還在不斷的發(fā)生著變化,統(tǒng)計(jì)表中的記錄會(huì)根據(jù)相應(yīng)的原則進(jìn)行更新,以達(dá)到滿足應(yīng)用的訪問(wèn)需求。統(tǒng)計(jì)表可以方便快捷地獲取實(shí)時(shí)信息,并進(jìn)行實(shí)時(shí)監(jiān)控,由此對(duì)統(tǒng)計(jì)表應(yīng)用也提出了更高的要求。在OLTP的環(huán)境下,系統(tǒng)基表是J^出表,用于實(shí)際存儲(chǔ)特定數(shù)據(jù)庫(kù)的元數(shù)據(jù),用戶通常需要對(duì)一些記錄數(shù)比較多的基表按一定的規(guī)則實(shí)時(shí)進(jìn)行統(tǒng)計(jì)。剛開始時(shí),此統(tǒng)計(jì)策略可以滿足應(yīng)用的需求,性能也可以被接受,但隨著用戶數(shù)的增加,網(wǎng)站訪問(wèn)量成指凄t級(jí)的增長(zhǎng),該統(tǒng)計(jì)SQL(StructuredQueryLanguage,結(jié)構(gòu)化查詢語(yǔ)言)語(yǔ)句的執(zhí)行頻率也迅速升高。另外,平均每次統(tǒng)計(jì)要掃描的記錄數(shù)不斷增加,因而導(dǎo)致單次執(zhí)行統(tǒng)計(jì)功能的SQL語(yǔ)句的平均代價(jià)COST也在不斷增加。像大型電子商務(wù)網(wǎng)站,對(duì)于會(huì)員評(píng)價(jià)的統(tǒng)計(jì),這種統(tǒng)計(jì)在面對(duì)一些星級(jí)較高的用戶時(shí),將變得異常困難。如果一個(gè)用戶的評(píng)價(jià)數(shù)較多,那么其它一定數(shù)量的用戶同時(shí)來(lái)查看該用戶的評(píng)價(jià)展示頁(yè)面時(shí)或者惡意刷新此評(píng)價(jià)頁(yè)面時(shí),這時(shí)就出現(xiàn)了數(shù)據(jù)庫(kù)性能問(wèn)題,用戶請(qǐng)求的頁(yè)面長(zhǎng)時(shí)間無(wú)法打開,用戶體驗(yàn)不好。還有比如說(shuō)要監(jiān)控用戶的異常登陸行為次數(shù),在遭受登陸攻擊的情況下,記錄用戶登陸操作行為的基表記錄數(shù)在短時(shí)間就很有可能達(dá)到十萬(wàn)的水平,那么此時(shí)即時(shí)判斷用戶登陸是否正常的統(tǒng)計(jì)SQL執(zhí)行將會(huì)越來(lái)越慢,數(shù)據(jù)庫(kù)服務(wù)器隊(duì)列越來(lái)越長(zhǎng),應(yīng)用服務(wù)器因不能快速得到數(shù)據(jù)庫(kù)的返回結(jié)果,導(dǎo)致連接池隊(duì)列變深,最終導(dǎo)致應(yīng)用服務(wù)器crash。所以傳統(tǒng)的采用直接對(duì)基表實(shí)時(shí)進(jìn)行統(tǒng)計(jì)的方法,越來(lái)越不能滿足業(yè)務(wù)發(fā)展的需要,這種統(tǒng)計(jì)方式迫切需要改變。現(xiàn)有技術(shù)中OLTP有一個(gè)顯著的特點(diǎn),就是SQL語(yǔ)句的執(zhí)行非常頻繁,而有些SQL語(yǔ)句則是完成統(tǒng)計(jì)功能的語(yǔ)句,這些語(yǔ)句的特點(diǎn)是a.耗CPU(CentralProcessingUnit,中央處理器)b.邏輯讀或者物理讀特別高,如果這一類的語(yǔ)句執(zhí)行達(dá)到一定頻率后,就會(huì)使數(shù)據(jù)庫(kù)系統(tǒng)的性能下降,進(jìn)而導(dǎo)致應(yīng)用系統(tǒng)響應(yīng)客戶:^青求變'("曼。在OLTP的環(huán)境里,用戶不可避免的要面對(duì)較高的訪問(wèn)量pageview。如上所述,采用直接對(duì)基表實(shí)時(shí)進(jìn)行統(tǒng)計(jì)的數(shù)據(jù)庫(kù)系統(tǒng)由于消耗了大量的CPU和較高的邏輯讀或者物理讀,而使數(shù)據(jù)庫(kù)服務(wù)器的負(fù)載居高不下。而且采這種方法的還有一個(gè)比較大的缺點(diǎn)是系統(tǒng)抗攻擊能力弱,對(duì)于大型電子商務(wù)網(wǎng)站來(lái)說(shuō),如果用戶頻繁刷新統(tǒng)計(jì)頁(yè)面,或者不斷惡意登陸,都會(huì)使數(shù)據(jù)庫(kù)系統(tǒng)迅速出現(xiàn)性能問(wèn)題,降低了整個(gè)業(yè)務(wù)系統(tǒng)的可靠性與連續(xù)性。
發(fā)明內(nèi)容本發(fā)明提供一種基于OLTP環(huán)境的統(tǒng)計(jì)表應(yīng)用方法及系統(tǒng),以提高整個(gè)業(yè)務(wù)系統(tǒng)的可靠性與連續(xù)性,給用戶優(yōu)質(zhì)的體驗(yàn)。為達(dá)到上述目的,本發(fā)明提供了一種基于OLTP環(huán)境的統(tǒng)計(jì)表應(yīng)用方法,包括以下步驟應(yīng)用服務(wù)器查詢數(shù)據(jù)庫(kù);根據(jù)所述統(tǒng)計(jì)記錄的關(guān)鍵字在統(tǒng)計(jì)表中查詢統(tǒng)計(jì)記錄,如果統(tǒng)計(jì)記錄存在且沒(méi)有過(guò)期,則將所述統(tǒng)計(jì)記錄返回給用戶;如果沒(méi)有統(tǒng)計(jì)記錄或統(tǒng)計(jì)記錄已過(guò)期,則調(diào)用SQL語(yǔ)句對(duì)基表進(jìn)行掃描,重新獲取統(tǒng)計(jì)記錄。所述應(yīng)用服務(wù)器查詢數(shù)據(jù)庫(kù)之前還包括判斷所述統(tǒng)計(jì)記錄是否存在于應(yīng)用服務(wù)器的緩存中,如果是且沒(méi)有過(guò)期,則直接返回給用戶;如果沒(méi)有在緩存中或已過(guò)期,則進(jìn)行統(tǒng)計(jì)表查詢。通過(guò)設(shè)置在所述應(yīng)用服務(wù)器的緩存中與統(tǒng)計(jì)記錄關(guān)鍵字對(duì)應(yīng)的時(shí)間過(guò)期標(biāo)志判斷是否過(guò)期。還包括預(yù)先在統(tǒng)計(jì)表中設(shè)置與所述統(tǒng)計(jì)記錄關(guān)鍵字對(duì)應(yīng)的時(shí)間過(guò)期標(biāo)志。所述調(diào)用SQL語(yǔ)句對(duì)基表進(jìn)行掃描,重新計(jì)算統(tǒng)計(jì)之后還包括將計(jì)算結(jié)果插入或更新到所述統(tǒng)計(jì)表,并緩存到應(yīng)用服務(wù)器。本發(fā)明還提供了一種基于OLTP環(huán)境的統(tǒng)計(jì)表應(yīng)用系統(tǒng),包括應(yīng)用服務(wù)器,用于查詢數(shù)據(jù)庫(kù),并將查詢結(jié)果返回客戶端;數(shù)據(jù)庫(kù),用于根據(jù)所述統(tǒng)計(jì)記錄的關(guān)鍵字在統(tǒng)計(jì)表中查詢統(tǒng)計(jì)記錄,如果統(tǒng)計(jì)記錄存在且沒(méi)有過(guò)期,則將所述統(tǒng)計(jì)記錄返回給用戶;如果沒(méi)有統(tǒng)計(jì)記錄或統(tǒng)計(jì)記錄已過(guò)期,則調(diào)用SQL語(yǔ)句對(duì)基表進(jìn)行掃描,重新獲取統(tǒng)計(jì)記錄。所述數(shù)據(jù)庫(kù)具體包括期限判斷單元,用于根據(jù)統(tǒng)計(jì)記錄中的關(guān)鍵字判斷統(tǒng)計(jì)表中對(duì)應(yīng)的期限是否超出;反饋單元,用于當(dāng)統(tǒng)計(jì)記錄存在且沒(méi)有過(guò)期,則將所述統(tǒng)計(jì)記錄返回給用戶;計(jì)算單元,用于沒(méi)有統(tǒng)計(jì)記錄或統(tǒng)計(jì)記錄已過(guò)期,則調(diào)用SQL語(yǔ)句對(duì)基表進(jìn)行掃描,重新獲取統(tǒng)計(jì)記錄。所述數(shù)據(jù)庫(kù)還包括期限設(shè)置單元,與所述期限判斷單元連接,用于預(yù)先在統(tǒng)計(jì)表中設(shè)置與所述統(tǒng)計(jì)記錄關(guān)鍵字對(duì)應(yīng)的時(shí)間過(guò)期標(biāo)志。所述數(shù)據(jù)庫(kù)還包括統(tǒng)計(jì)表更新單元,與所述期限判斷單元連接,用于將計(jì)算結(jié)果插入或更新到所述統(tǒng)計(jì)表,并緩存到應(yīng)用服務(wù)器。所述應(yīng)用服務(wù)器具體包括緩存單元,用于緩存統(tǒng)計(jì)記錄;判斷單元,用于判斷所述統(tǒng)計(jì)記錄是否存在于應(yīng)用服務(wù)器的緩存中,如果是且沒(méi)有過(guò)期,則直接返回給用戶;如果沒(méi)有在緩存中或已過(guò)期,則進(jìn)行統(tǒng)計(jì)表查詢。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)本發(fā)明是建立在統(tǒng)計(jì)表之上的統(tǒng)計(jì)策略,將使OLTP的數(shù)據(jù)庫(kù)系統(tǒng)負(fù)載降低;抗攻擊能力增強(qiáng),提高整個(gè)系統(tǒng)的可靠性。圖1為本發(fā)明實(shí)施例中基于OLTP環(huán)境的統(tǒng)計(jì)表應(yīng)用方法流程圖;圖2為本發(fā)明實(shí)施例中應(yīng)用服務(wù)器處理流程圖;圖3為本發(fā)明實(shí)施例中數(shù)據(jù)庫(kù)處理流程圖4為本發(fā)明實(shí)施例中基于OLTP環(huán)境的統(tǒng)計(jì)表應(yīng)用系統(tǒng)結(jié)構(gòu)圖。具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的具體實(shí)施方式作進(jìn)一步詳細(xì)描述本發(fā)明實(shí)施例一提供了一種基于OLTP環(huán)境的統(tǒng)計(jì)表應(yīng)用方法,如圖1所示,包括以下步驟步驟sl01,用戶向應(yīng)用服務(wù)器發(fā)出請(qǐng)求,要求調(diào)用統(tǒng)計(jì)記錄。步驟s102,應(yīng)用服務(wù)器進(jìn)行處理。判斷所述統(tǒng)計(jì)記錄是否存在于應(yīng)用服務(wù)器的緩存中,如果是且該統(tǒng)計(jì)記錄沒(méi)有過(guò)期(可以通過(guò)設(shè)置在所述應(yīng)用服務(wù)器的緩存中與統(tǒng)計(jì)記錄關(guān)鍵字對(duì)應(yīng)的時(shí)間過(guò)期標(biāo)志判斷是否過(guò)期),則直接將該統(tǒng)計(jì)記錄返回給用戶;如果沒(méi)有在緩存中或該統(tǒng)計(jì)記錄已過(guò)期,則到數(shù)據(jù)庫(kù)中進(jìn)行統(tǒng)計(jì)表查詢。本發(fā)明可以在應(yīng)用服務(wù)器設(shè)置高速緩沖存儲(chǔ)器Cache,直接返還給用戶的統(tǒng)計(jì)策略,該方法具體包括根據(jù)要統(tǒng)計(jì)的結(jié)果對(duì)象的屬性確定統(tǒng)計(jì)表的字段,并增加另外一個(gè)時(shí)間字段Update—Time,此字段表示此統(tǒng)計(jì)的更新時(shí)間,作為確定此統(tǒng)計(jì)記錄是否失效的時(shí)間依據(jù),如下表l中所示表l:根據(jù)統(tǒng)計(jì)對(duì)象建立的統(tǒng)計(jì)表<table>tableseeoriginaldocumentpage7</column></row><table>在表l中,主鍵可以看成一個(gè)要統(tǒng)計(jì)對(duì)象的ID,是對(duì)這條統(tǒng)計(jì)記錄的唯一確定;統(tǒng)計(jì)字段A、B、C、D只是一個(gè)示例,可以根據(jù)具體的業(yè)務(wù)需求增加其它統(tǒng)計(jì)字#更。步驟s103,數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行處理。數(shù)據(jù)庫(kù)服務(wù)器預(yù)先在統(tǒng)計(jì)表中設(shè)置與所述統(tǒng)計(jì)記錄關(guān)鍵字對(duì)應(yīng)的時(shí)間過(guò)期標(biāo)志,根據(jù)所述統(tǒng)計(jì)記錄的關(guān)鍵字在統(tǒng)計(jì)表中查詢統(tǒng)計(jì)記錄,如果統(tǒng)計(jì)記錄存在且沒(méi)有過(guò)期(可以通過(guò)設(shè)置在所述數(shù)據(jù)庫(kù)的統(tǒng)計(jì)表中的與統(tǒng)計(jì)記錄關(guān)鍵字對(duì)應(yīng)的時(shí)間過(guò)期標(biāo)志判斷是否過(guò)期),則將所述統(tǒng)計(jì)記錄返回給用戶;如果沒(méi)有統(tǒng)計(jì)記錄或統(tǒng)計(jì)記錄已過(guò)期,則調(diào)用SQL語(yǔ)句對(duì)基表進(jìn)行掃描,重新獲取統(tǒng)計(jì)記錄,將計(jì)算結(jié)果插入或更新到所述統(tǒng)計(jì)表,并緩存到應(yīng)用服務(wù)器。同理,數(shù)據(jù)庫(kù)服務(wù)器中的統(tǒng)計(jì)表與表1相同,應(yīng)用服務(wù)器中的時(shí)間過(guò)期標(biāo)志與數(shù)據(jù)庫(kù)服務(wù)器中的時(shí)間過(guò)期標(biāo)志應(yīng)該保持一致。本發(fā)明實(shí)施例二中,如果滿足一定條件,統(tǒng)計(jì)記錄可以只經(jīng)過(guò)應(yīng)用服務(wù)器處理,直接返回用戶結(jié)果,不用再去訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器,這是在應(yīng)用服務(wù)器設(shè)置了相應(yīng)的Cache取得的效果,具體過(guò)程如圖2所示,包括以下步驟步驟s201,首先判斷用戶請(qǐng)求的統(tǒng)計(jì)記錄是否在應(yīng)用服務(wù)器的Cache中。步驟s202,如果存在,則判斷數(shù)據(jù)是否過(guò)期,如果過(guò)期,則轉(zhuǎn)步驟s203,如果沒(méi)有過(guò)期,則轉(zhuǎn)步驟s204。這個(gè)過(guò)期時(shí)間是一個(gè)閥值,其中只要與數(shù)據(jù)庫(kù)里面統(tǒng)計(jì)表的Update—Time字段用于計(jì)算統(tǒng)計(jì)記錄過(guò)期的邏輯判斷保持一致,則統(tǒng)計(jì)服務(wù)器可以靈活設(shè)置。步驟s203,查詢數(shù)據(jù)庫(kù)。步驟s204,將該統(tǒng)計(jì)記錄返回給用戶。對(duì)應(yīng)上述應(yīng)用服務(wù)器細(xì)化的處理流程可以用偽代碼表示如下if統(tǒng)計(jì)計(jì)錄存在于應(yīng)用服務(wù)器Cachethenif系統(tǒng)當(dāng)前時(shí)間—此統(tǒng)計(jì)記錄的生成時(shí)間Update—Time>=閥值then此統(tǒng)計(jì)記錄過(guò)期,緩存無(wú)效,訪問(wèn)數(shù)據(jù)庫(kù);else此緩存的統(tǒng)計(jì)記錄有效,返回給用戶;endif;else訪問(wèn)數(shù)據(jù)庫(kù);endif;如果在應(yīng)用服務(wù)器緩存的數(shù)據(jù)過(guò)期或者數(shù)據(jù)根本就不在應(yīng)用服務(wù)器Cache中,需要查詢數(shù)據(jù)庫(kù)的統(tǒng)計(jì)策略。如圖3所示,具體包括以下步驟步驟s301,統(tǒng)計(jì)服務(wù)器根據(jù)主鍵字段在統(tǒng)計(jì)表中查找統(tǒng)計(jì)記錄,如果統(tǒng)計(jì)記錄存在,則轉(zhuǎn)步驟s302,如果統(tǒng)計(jì)記錄不存在,則轉(zhuǎn)步驟s307。步驟s302,判斷統(tǒng)計(jì)記錄是否過(guò)期,如果過(guò)期,轉(zhuǎn)步驟s303,如果不過(guò)期,則轉(zhuǎn)步驟s305。步驟s303,調(diào)用統(tǒng)計(jì)SQL重新計(jì)算。步驟s304,在統(tǒng)計(jì)表中更新該記錄。步驟s305,在應(yīng)用服務(wù)器緩存該統(tǒng)計(jì)記錄,轉(zhuǎn)步驟s306。步驟s306,將該統(tǒng)計(jì)記錄返回給用戶。步驟s307,調(diào)用統(tǒng)計(jì)SQL重新計(jì)算。步驟s308,插入該統(tǒng)計(jì)記錄到統(tǒng)計(jì)表中,轉(zhuǎn)步驟s305?,F(xiàn)有技術(shù)中,在整個(gè)處理過(guò)程,調(diào)用統(tǒng)計(jì)SQL語(yǔ)句的步驟最消耗系統(tǒng)資源,但使用上述方法后,首先在統(tǒng)計(jì)表上設(shè)立時(shí)間過(guò)期字段,揭示了統(tǒng)計(jì)記錄有效性的生命周期,其次建立在此設(shè)計(jì)方法上對(duì)統(tǒng)計(jì)信息的訪問(wèn)方式,先是應(yīng)用服務(wù)器對(duì)已訪問(wèn)過(guò)的統(tǒng)計(jì)信息進(jìn)行Cache,很多重復(fù)性訪問(wèn)在應(yīng)用服務(wù)器就可以完成,不用再訪問(wèn)數(shù)據(jù)庫(kù),減少數(shù)據(jù)庫(kù)壓力;如果進(jìn)入數(shù)據(jù)庫(kù)訪問(wèn),那么可以訪問(wèn)統(tǒng)計(jì)表,如果統(tǒng)計(jì)表中的記錄不存在或者統(tǒng)計(jì)記錄過(guò)期,才會(huì)調(diào)用統(tǒng)計(jì)SQL語(yǔ)句對(duì)基表掃描進(jìn)行統(tǒng)計(jì)運(yùn)算,此運(yùn)算結(jié)果返回應(yīng)用服務(wù)器Cache。整個(gè)系統(tǒng)相當(dāng)于有兩層Cache,—層在應(yīng)用服務(wù)器,另外一層可以把數(shù)據(jù)庫(kù)層的統(tǒng)計(jì)表看成是一層Cache,如果在這兩層都失效,才會(huì)調(diào)用統(tǒng)計(jì)SQL掃描基表進(jìn)行統(tǒng)計(jì)計(jì)算,大大減少統(tǒng)計(jì)SQL語(yǔ)句的執(zhí)行次數(shù)。而對(duì)于大部份的訪問(wèn),基本上都會(huì)在應(yīng)用服務(wù)器Cache中命中,這樣可以極大的提高凄t據(jù)庫(kù)系統(tǒng)的抗攻擊能力。使用本實(shí)施例中的方法,還有一個(gè)特點(diǎn)就是,比如說(shuō)會(huì)員評(píng)價(jià)的統(tǒng)計(jì)表,舉一個(gè)極端的例子,如果一個(gè)會(huì)員的評(píng)價(jià)信息從來(lái)不被任何人訪問(wèn),那么統(tǒng)計(jì)表中不會(huì)有他的統(tǒng)計(jì)記錄;如果一個(gè)會(huì)員的評(píng)價(jià)很久都不被人訪問(wèn),那么他的評(píng)價(jià)統(tǒng)計(jì)記錄肯定是早就過(guò)期了,但不會(huì)更新他的統(tǒng)計(jì)記錄,直到有人^方問(wèn)為止。本發(fā)明還提供了一種基于OLTP環(huán)境的統(tǒng)計(jì)表應(yīng)用系統(tǒng),如圖4所示,包括應(yīng)用服務(wù)器100,用于接收來(lái)自用戶的統(tǒng)計(jì)記錄,并轉(zhuǎn)發(fā)至數(shù)據(jù)庫(kù);數(shù)據(jù)庫(kù)200,用于根據(jù)所述統(tǒng)計(jì)記錄的關(guān)鍵字在統(tǒng)計(jì)表中查詢統(tǒng)計(jì)記錄,如果統(tǒng)計(jì)記錄存在且沒(méi)有過(guò)期,則將所述統(tǒng)計(jì)記錄返回給用戶;如果沒(méi)有統(tǒng)計(jì)記錄或統(tǒng)計(jì)記錄已過(guò)期,則調(diào)用SQL語(yǔ)句對(duì)基表進(jìn)行掃描,重新獲取統(tǒng)計(jì)記錄。所述數(shù)據(jù)庫(kù)200具體包括期限判斷單元210,用于根據(jù)統(tǒng)計(jì)記錄中的關(guān)鍵字判斷統(tǒng)計(jì)表中對(duì)應(yīng)的期限是否超出;反饋單元220,用于當(dāng)統(tǒng)計(jì)記錄存在且沒(méi)有過(guò)期,則將所述統(tǒng)計(jì)記錄返回給用戶;計(jì)算單元230,用于沒(méi)有統(tǒng)計(jì)記錄或統(tǒng)計(jì)記錄已過(guò)期,則調(diào)用SQL語(yǔ)句對(duì)基表進(jìn)行掃描,重新獲取統(tǒng)計(jì)記錄。期限設(shè)置單元240,與所述期限判斷單元210連接,用于預(yù)先在統(tǒng)計(jì)表中設(shè)置與所述統(tǒng)計(jì)記錄關(guān)4建字對(duì)應(yīng)的時(shí)間過(guò)期標(biāo)志。統(tǒng)計(jì)表更新單元250,與所述期限判斷單元210連接,用于將計(jì)算結(jié)果插入或更新到所述統(tǒng)計(jì)表,并緩存到應(yīng)用服務(wù)器。所述應(yīng)用服務(wù)器IOO具體包括緩存單元IIO,用于緩存統(tǒng)計(jì)記錄;判斷單元120,用于判斷所述統(tǒng)計(jì)記錄是否存在于應(yīng)用服務(wù)器的緩存中,如果是且沒(méi)有過(guò)期,則直接返回給用戶;如果沒(méi)有在緩存中或已過(guò)期,則進(jìn)行統(tǒng)計(jì)表查詢。通過(guò)以上實(shí)施例的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)網(wǎng)絡(luò)設(shè)備導(dǎo)丸行本發(fā)明各個(gè)實(shí)施例所述的方法。以上公開的僅為本發(fā)明的幾個(gè)具體實(shí)施例,但是,本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護(hù)范圍。權(quán)利要求1、一種基于OLTP環(huán)境的統(tǒng)計(jì)表應(yīng)用方法,其特征在于,包括以下步驟應(yīng)用服務(wù)器查詢數(shù)據(jù)庫(kù);根據(jù)所述統(tǒng)計(jì)記錄的關(guān)鍵字在統(tǒng)計(jì)表中查詢統(tǒng)計(jì)記錄,如果統(tǒng)計(jì)記錄存在且沒(méi)有過(guò)期,則將所述統(tǒng)計(jì)記錄返回給用戶;如果沒(méi)有統(tǒng)計(jì)記錄或統(tǒng)計(jì)記錄已過(guò)期,則調(diào)用SQL語(yǔ)句對(duì)基表進(jìn)行掃描,重新獲取統(tǒng)計(jì)記錄。2、如權(quán)利要求1所述基于OLTP環(huán)境的統(tǒng)計(jì)表應(yīng)用方法,其特征在于,所述應(yīng)用服務(wù)器查詢數(shù)據(jù)庫(kù)之前還包括判斷所述統(tǒng)計(jì)記錄是否存在于應(yīng)用服務(wù)器的緩存中,如杲是且沒(méi)有過(guò)期,則直接返回給用戶;如果沒(méi)有在緩存中或已過(guò)期,則進(jìn)行統(tǒng)計(jì)表查詢。3、如權(quán)利要求2所述基于OLTP環(huán)境的統(tǒng)計(jì)表應(yīng)用方法,其特征在于,通過(guò)設(shè)置在所述應(yīng)用服務(wù)器的緩存中與統(tǒng)計(jì)記錄關(guān)鍵字對(duì)應(yīng)的時(shí)間過(guò)期標(biāo)志判斷是否過(guò)期。4、如權(quán)利要求l所述基于OLTP環(huán)境的統(tǒng)計(jì)表應(yīng)用方法,其特征在于,還包括預(yù)先在統(tǒng)計(jì)表中設(shè)置與所述統(tǒng)計(jì)記錄關(guān)鍵字對(duì)應(yīng)的時(shí)間過(guò)期標(biāo)志。5、如權(quán)利要求1所述基于OLTP環(huán)境的統(tǒng)計(jì)表應(yīng)用方法,其特征在于,所述調(diào)用SQL語(yǔ)句對(duì)基表進(jìn)行掃描,重新計(jì)算統(tǒng)計(jì)之后還包括將計(jì)算結(jié)果插入或更新到所述統(tǒng)計(jì)表,并緩存到應(yīng)用服務(wù)器。6、一種基于OLTP環(huán)境的統(tǒng)計(jì)表應(yīng)用系統(tǒng),其特征在于,包括應(yīng)用服務(wù)器,用于查詢數(shù)據(jù)庫(kù),并將查詢結(jié)果返回給客戶端;數(shù)據(jù)庫(kù),用于根據(jù)所述統(tǒng)計(jì)記錄的關(guān)鍵字在統(tǒng)計(jì)表中查詢統(tǒng)計(jì)記錄,如果統(tǒng)計(jì)記錄存在且沒(méi)有過(guò)期,則將所述統(tǒng)計(jì)記錄返回給用戶;如果沒(méi)有統(tǒng)計(jì)記錄或統(tǒng)計(jì)記錄已過(guò)期,則調(diào)用SQL語(yǔ)句對(duì)基表進(jìn)行掃描,重新獲取統(tǒng)計(jì)記錄。7、如權(quán)利要求6所述基于OLTP環(huán)境的統(tǒng)計(jì)表應(yīng)用系統(tǒng),其特征在于,所述數(shù)據(jù)庫(kù)具體包括期限判斷單元,用于根據(jù)統(tǒng)計(jì)記錄中的關(guān)#:字判斷統(tǒng)計(jì)表中對(duì)應(yīng)的期限是否超出;反饋單元,用于當(dāng)統(tǒng)計(jì)記錄存在且沒(méi)有過(guò)期,則將所述統(tǒng)計(jì)記錄返回給用戶;計(jì)算單元,用于沒(méi)有統(tǒng)計(jì)記錄或統(tǒng)計(jì)記錄已過(guò)期,則調(diào)用SQL語(yǔ)句對(duì)基表進(jìn)行掃描,重新獲取統(tǒng)計(jì)記錄。8、如權(quán)利要求7所述基于OLTP環(huán)境的統(tǒng)計(jì)表應(yīng)用系統(tǒng),其特征在于,所述數(shù)據(jù)庫(kù)還包括期限設(shè)置單元,與所述期限判斷單元連接,用于預(yù)先在統(tǒng)計(jì)表中設(shè)置與所述統(tǒng)計(jì)記錄關(guān)^t字對(duì)應(yīng)的時(shí)間過(guò)期標(biāo)志。9、如權(quán)利要求7所述基于OLTP環(huán)境的統(tǒng)計(jì)表應(yīng)用系統(tǒng),其特征在于,所述數(shù)據(jù)庫(kù)還包括統(tǒng)計(jì)表更新單元,與所述期限判斷單元連接,用于將計(jì)算結(jié)果插入或更新到所述統(tǒng)計(jì)表,并緩存到應(yīng)用服務(wù)器。10、如權(quán)利要求6所迷基于OLTP環(huán)境的統(tǒng)計(jì)表應(yīng)用系統(tǒng),其特征在于,所述應(yīng)用服務(wù)器具體包括緩存單元,用于緩存統(tǒng)計(jì)記錄;判斷單元,用于判斷所述統(tǒng)計(jì)記錄是否存在于應(yīng)用服務(wù)器的緩存中,如果是且沒(méi)有過(guò)期,則直接返回給用戶;如果沒(méi)有在緩存中或已過(guò)期,則進(jìn)行統(tǒng)計(jì)表查詢。全文摘要本發(fā)明提供一種基于OLTP環(huán)境的統(tǒng)計(jì)表應(yīng)用方法,包括以下步驟應(yīng)用服務(wù)器查詢數(shù)據(jù)庫(kù);根據(jù)所述統(tǒng)計(jì)記錄的關(guān)鍵字在統(tǒng)計(jì)表中查詢統(tǒng)計(jì)記錄,如果統(tǒng)計(jì)記錄存在且沒(méi)有過(guò)期,則將所述統(tǒng)計(jì)記錄返回給用戶;如果沒(méi)有統(tǒng)計(jì)記錄或統(tǒng)計(jì)記錄已過(guò)期,則調(diào)用SQL語(yǔ)句對(duì)基表進(jìn)行掃描,重新獲取統(tǒng)計(jì)記錄。本發(fā)明提供一種基于OLTP環(huán)境的統(tǒng)計(jì)表應(yīng)用系統(tǒng)。本發(fā)明是建立在統(tǒng)計(jì)表之上的統(tǒng)計(jì)策略,將使OLTP的數(shù)據(jù)庫(kù)系統(tǒng)負(fù)載降低;抗攻擊能力增強(qiáng),提高整個(gè)系統(tǒng)的可靠性。文檔編號(hào)G06F17/30GK101430687SQ20071018810公開日2009年5月13日申請(qǐng)日期2007年11月9日優(yōu)先權(quán)日2007年11月9日發(fā)明者林趙申請(qǐng)人:阿里巴巴集團(tuán)控股有限公司