亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種針對多數(shù)據(jù)庫表的跨庫分頁查詢方法

文檔序號:8258550閱讀:3337來源:國知局
一種針對多數(shù)據(jù)庫表的跨庫分頁查詢方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于數(shù)據(jù)查詢技術(shù)領(lǐng)域,涉及針對多數(shù)據(jù)庫表的跨庫分頁查詢方法。
【背景技術(shù)】
[0002]隨著大數(shù)據(jù)時(shí)代的來臨,針對海量數(shù)據(jù)的查詢越來越不容易,其查詢的效率也備受:關(guān)注。
[0003]以銀行業(yè)金融行業(yè)為例,隨著銀行卡產(chǎn)業(yè)的高速發(fā)展,每日的跨行交易總量已經(jīng)突破了三千萬筆,傳統(tǒng)一個(gè)數(shù)據(jù)庫單張表的方式,已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足數(shù)據(jù)庫運(yùn)維的需求,拆分?jǐn)?shù)據(jù)庫表和拆分?jǐn)?shù)據(jù)庫是必然的選擇。因此,各種交易數(shù)據(jù)會以多個(gè)數(shù)據(jù)庫、每個(gè)數(shù)據(jù)庫對應(yīng)多張數(shù)據(jù)庫表的形式來存儲。
[0004]目前針對多張位于不同數(shù)據(jù)庫的數(shù)據(jù)庫表的查詢中,比較通用方法的有以下幾種。
[0005]第一種,為多張數(shù)據(jù)庫表創(chuàng)建視圖,通過訪問視圖來達(dá)到對多張數(shù)據(jù)庫表的訪問。針對每張數(shù)據(jù)庫表數(shù)據(jù)量不是特別大、表不是特別多情況,創(chuàng)建視圖是一種簡單可行的方案。但是在每張數(shù)據(jù)庫表的數(shù)據(jù)量比較大且數(shù)據(jù)庫表張數(shù)比較多的情況(例如:每張表數(shù)據(jù)量超過3千萬,366張數(shù)據(jù)表)下,即使創(chuàng)建了索引,通過視圖訪問也會效率十分低下,甚至出現(xiàn)不可訪問的情況。
[0006]第二中,通過創(chuàng)建nickname (昵稱)的方式,將跨數(shù)據(jù)庫查詢轉(zhuǎn)換成單庫查詢。采用nickname后,不能完全實(shí)現(xiàn)數(shù)據(jù)庫之間相互獨(dú)立,存在潛在的安全隱患。在銀行、金融等對數(shù)據(jù)安全要求比較高的行業(yè),已經(jīng)禁止采用nickname。即使在安全性要求較低的數(shù)據(jù)查詢領(lǐng)域采用nickname,也只能解決跨庫訪問的問題,仍然面臨數(shù)據(jù)庫表張數(shù)過多的問題。
[0007]有鑒于此,有必要提出一種新型的針對多數(shù)據(jù)庫表的跨庫查詢方法。

【發(fā)明內(nèi)容】

[0008]本發(fā)明的目的在于,提高多數(shù)據(jù)庫表跨庫查詢的查詢效率。
[0009]為實(shí)現(xiàn)以上目的或者其他目的,本發(fā)明提供以下技術(shù)方案。
[0010]按照本發(fā)明的一方面,提供一種數(shù)據(jù)分頁查詢方法,其中,每頁查詢記錄的輸出對應(yīng)一次查詢,對M個(gè)數(shù)據(jù)庫中的N張數(shù)據(jù)庫表進(jìn)行數(shù)據(jù)查詢的指令對應(yīng)至少一頁查詢,其中M和N為整數(shù),M彡2,N彡M,每個(gè)數(shù)據(jù)庫至少對應(yīng)一張數(shù)據(jù)庫表;
所述數(shù)據(jù)分頁查詢方法包括以下步驟:
接收到需要對M個(gè)數(shù)據(jù)庫中的N張數(shù)據(jù)庫表進(jìn)行數(shù)據(jù)查詢的所述指令;
判斷在緩存中是否存儲有對應(yīng)該指令的反映查詢記錄情況的統(tǒng)計(jì)信息,從而判斷該指令在緩存的數(shù)據(jù)存儲周期內(nèi)是否是第一次接收;
如果緩存中沒有存儲所述統(tǒng)計(jì)信息,執(zhí)行以下步驟:
S110,將該指令按查詢?nèi)蝿?wù)拆分為F個(gè)子任務(wù),每個(gè)子任務(wù)對應(yīng)一個(gè)數(shù)據(jù)庫的一張或多張數(shù)據(jù)庫表的查詢,其中F為整數(shù),N^F^M; S120,并行地執(zhí)行F個(gè)子任務(wù);
S130,在執(zhí)行完成后返回所有F個(gè)子任務(wù)對應(yīng)的查詢記錄的總的條數(shù)G,并返回第一前Q條查詢記錄,其中,Q為分頁查詢時(shí)每頁輸出的查詢記錄的條數(shù),G^Q;
S140,生成所述統(tǒng)計(jì)信息并將該統(tǒng)計(jì)信息存儲至所述緩存,所述統(tǒng)計(jì)信息包括每個(gè)子任務(wù)對應(yīng)的查詢記錄的條數(shù);
S150,將第一前Q條查詢記錄輸出以輸出第一頁查詢結(jié)果;
如果緩存中存儲有所述統(tǒng)計(jì)信息,執(zhí)行以下步驟:
S210,根據(jù)所述統(tǒng)計(jì)信息獲知預(yù)計(jì)的查詢記錄對應(yīng)的一個(gè)或多個(gè)子任務(wù);
S220,并行執(zhí)行所述F個(gè)子任務(wù)中的該一個(gè)或多個(gè)子任務(wù);
S230,返回第二前Q條查詢記錄并將該Q條查詢記錄按一頁查詢結(jié)果輸出。
[0011]按照本發(fā)明一實(shí)施例的數(shù)據(jù)分頁查詢方法,其中,所述第一或第二前Q條查詢記錄為對應(yīng)于多個(gè)子任務(wù)所返回的查詢記錄時(shí),合并該多個(gè)子任務(wù)所返回的查詢記錄。
[0012]按照本發(fā)明還一實(shí)施例的數(shù)據(jù)分頁查詢方法,其中,基于所述總的條數(shù)G以及每頁輸出的查詢記錄的條數(shù)Q,如果G大于Q,則返回所述接收步驟,并在所述判斷步驟中判斷為緩存中存儲有所述統(tǒng)計(jì)信息,以重復(fù)執(zhí)行所述步驟S210至S230,從而總共輸出K頁查詢結(jié)果,其中K為將G除以Q的結(jié)果向上取整得到的整數(shù)。
[0013]在之前所述任一實(shí)施例中,優(yōu)選地,所述指令為SQL指令,所述SQL指令按消息摘要算法5 (MD5)處理以得出其MD5摘要信息。
[0014]在之前所述任一實(shí)施例中,具體地,所述統(tǒng)計(jì)信息被表述為以下格式:
<MD5(SQL), ?SplitO, F1), <Splitl, F2>,…,〈Split (F_l),F(xiàn)f>) > ;
其中,MD5(SQL)為SQL指令的MD5摘要信息,SplitO至Split (F-1)依次表示拆分形成的第一子任務(wù)至第F子任務(wù),F1至Ff依次表示第一子任務(wù)至第F子任務(wù)分別所對應(yīng)的查詢記錄的條數(shù)。
[0015]在之前所述任一實(shí)施例中,優(yōu)選地,在所述判斷步驟,根據(jù)接收的SQL指令的MD5摘要信息與統(tǒng)計(jì)信息中的MD5摘要信息是否向?qū)?yīng)來判斷是否存儲有對應(yīng)該SQL指令的反映查詢記錄的統(tǒng)計(jì)信息。
[0016]在之前所述任一實(shí)施例中,優(yōu)選地,所述緩存的數(shù)據(jù)存儲周期不超過一天。
[0017]在之前所述任一實(shí)施例中,優(yōu)選地,F(xiàn)=M,每個(gè)子任務(wù)對應(yīng)一個(gè)數(shù)據(jù)庫的一張或多張數(shù)據(jù)庫表的查詢。
[0018]按照本發(fā)明的又一方面,提供一種數(shù)據(jù)分頁查詢裝置,其中,每頁查詢記錄的輸出對應(yīng)一次查詢,對M個(gè)數(shù)據(jù)庫中的N張數(shù)據(jù)庫表進(jìn)行數(shù)據(jù)查詢的指令對應(yīng)至少一頁查詢,其中M和N為整數(shù),M彡2,N彡M,每個(gè)數(shù)據(jù)庫至少對應(yīng)一張數(shù)據(jù)庫表;
所述數(shù)據(jù)分頁查詢裝置包括以下部件:
指令接收部件,用于接收到需要對M個(gè)數(shù)據(jù)庫中的N張數(shù)據(jù)庫表進(jìn)行數(shù)據(jù)查詢的所述指令;
統(tǒng)計(jì)信息判斷部件,用于判斷在緩存中是否存儲有對應(yīng)該指令的反映查詢記錄情況的統(tǒng)計(jì)信息,從而判斷該指令在緩存的數(shù)據(jù)存儲周期內(nèi)是否是第一次接收;
第一部件,在緩存中沒有存儲所述統(tǒng)計(jì)信息的情況下用于執(zhí)行以下步驟:
S110,將該指令按查詢?nèi)蝿?wù)拆分為F個(gè)子任務(wù),每個(gè)子任務(wù)對應(yīng)一個(gè)數(shù)據(jù)庫的一張或多張數(shù)據(jù)庫表的查詢,其中F為整數(shù),N^F^M;
S120,并行地執(zhí)行F個(gè)子任務(wù);
S130,在執(zhí)行完成后返回所有F個(gè)子任務(wù)對應(yīng)的查詢記錄的總的條數(shù)G,并返回第一前Q條查詢記錄,其中,Q為分頁查詢時(shí)每頁輸出的查詢記錄的條數(shù),G^Q;
S140,生成所述統(tǒng)計(jì)信息并將該統(tǒng)計(jì)信息存儲至所述緩存,所述統(tǒng)計(jì)信息包括每個(gè)子任務(wù)對應(yīng)的查詢記錄的條數(shù);
S150,將第一前Q條查詢記錄輸出以輸出第一頁查詢結(jié)果;
第二部件,在緩存中存儲有所述統(tǒng)計(jì)信息的情況下用于執(zhí)行以下步驟:
S210,根據(jù)所述統(tǒng)計(jì)信息獲知預(yù)計(jì)的查詢記錄對應(yīng)的一個(gè)或多個(gè)子任務(wù);
S220,并行執(zhí)行所述F個(gè)子任務(wù)中的該一個(gè)或多個(gè)子任務(wù);
S230,返回第二前Q條查詢記錄并將該Q條查詢記錄按一頁查詢結(jié)果輸出。
[0019]按照本發(fā)明一實(shí)施例的數(shù)據(jù)分頁查詢裝置,其中,所述第一或第二前Q條查詢記錄為對應(yīng)于多個(gè)子任務(wù)所返回的查詢記錄時(shí),合并該多個(gè)子任務(wù)所返回的查詢記錄
本發(fā)明的技術(shù)效果是,通過將查詢?nèi)蝿?wù)拆分并行查詢,并將反映查詢記錄情況的統(tǒng)計(jì)信息在緩存中存儲,因此,在跨庫分頁查詢時(shí),其后針對該查詢指令的某頁的查詢可以實(shí)現(xiàn)定位查詢,最大限度地減少對數(shù)據(jù)庫的訪問,大大提高分頁查詢的效率,適用于多數(shù)據(jù)庫表的跨庫分頁查詢。并且,數(shù)據(jù)庫之間在查詢過程中也相互獨(dú)立,能保證跨庫查詢的安全性。該數(shù)據(jù)分頁查詢方法通用性強(qiáng),適用于多種數(shù)據(jù)庫場景查詢。
【附圖說明】
[0020
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1