欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于oltp環(huán)境的統(tǒng)計表應用方法及系統(tǒng)的制作方法

文檔序號:6614459閱讀:280來源:國知局

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