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

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

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

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

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