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

用于數(shù)據(jù)查詢的方法和系統(tǒng)的制作方法

文檔序號:6503555閱讀:130來源:國知局
用于數(shù)據(jù)查詢的方法和系統(tǒng)的制作方法【專利摘要】本發(fā)明公開了一種用于數(shù)據(jù)查詢的方法和系統(tǒng)。所述方法包括:接收查詢請求,所述查詢請求包括查詢語句;計算所述查詢語句中關(guān)鍵組成元素的特征值;基于所述關(guān)鍵組成元素的特征值匹配歷史查詢語句的執(zhí)行計劃中節(jié)點的特征值;響應(yīng)于匹配到對應(yīng)所述節(jié)點的特征值,基于所述節(jié)點對應(yīng)的執(zhí)行計劃,生成所述查詢語句的執(zhí)行計劃。本發(fā)明的方法和系統(tǒng)有利于提高執(zhí)行計劃的重用程度,進而提高生成查詢語句的執(zhí)行計劃的效率以及數(shù)據(jù)庫管理系統(tǒng)在性能上的穩(wěn)定性?!緦@f明】用于數(shù)據(jù)查詢的方法和系統(tǒng)【
技術(shù)領(lǐng)域
】[0001]本發(fā)明涉及數(shù)據(jù)處理技術(shù),更具體地涉及一種用于數(shù)據(jù)查詢方法和系統(tǒng)?!?br>背景技術(shù)
】[0002]數(shù)據(jù)庫管理系統(tǒng)在處理用戶的查詢請求時,對于如何執(zhí)行該查詢,存在多種執(zhí)行路徑。但有些執(zhí)行路徑所花費的成本(比如查詢時間)會較高,有些執(zhí)行路徑則會較低。因此一般事先需要對查詢的執(zhí)行路徑進行優(yōu)化。例如,當(dāng)前業(yè)內(nèi)的主流數(shù)據(jù)庫管理系統(tǒng)中所使用的查詢優(yōu)化器,主要是使用"基于規(guī)則"和"基于代價"的兩種優(yōu)化方法來優(yōu)化SQL語句,并生成相對較優(yōu)的查詢計劃。但是在某些情況下,優(yōu)化器的全自動優(yōu)化過程可能產(chǎn)生性能無法接受的執(zhí)行計劃。例如:[0003]1)數(shù)據(jù)庫管理系統(tǒng)已經(jīng)針對了之前的典型應(yīng)用(常用結(jié)構(gòu)化查詢語言SQL語句)進行了調(diào)優(yōu)。但對于新的SQL語句,原有的調(diào)優(yōu)參數(shù)可能并不適用,這樣優(yōu)化器可能產(chǎn)生效率很差的執(zhí)行路徑。[0004]2)實際應(yīng)用系統(tǒng)中,SQL查詢語句往往非常長并且非常復(fù)雜。優(yōu)化器的算法的由于其局限性無法生成較優(yōu)執(zhí)行計劃,而且對這些SQL語句的優(yōu)化和編譯往往耗費系統(tǒng)較長的時間。[0005]在一個經(jīng)過調(diào)優(yōu)的數(shù)據(jù)庫系統(tǒng)中,對于新進入的SQL語句,我們應(yīng)當(dāng)盡可能的復(fù)用之前優(yōu)化過的查詢計劃,來減少編譯和優(yōu)化SQL語句所使用的時間。目前在主流商用數(shù)據(jù)庫管理系統(tǒng)中,廣泛使用的查詢計劃復(fù)用方法普遍存在以下一些缺點:[0006]1)查詢計劃是以整體為單位進行復(fù)用的,無法對執(zhí)行計劃進行更細粒度的分割,這導(dǎo)致復(fù)用效率低下。[0007]2)查詢計劃復(fù)用時,往往簡單的采用SQL語句文本匹配的方式進行匹配和復(fù)用。匹配效率低下。[0008]因此需要一種能夠以較高效率的生成可用的執(zhí)行計劃的數(shù)據(jù)查詢方法?!?br/>發(fā)明內(nèi)容】[0009]本發(fā)明提供一種用于數(shù)據(jù)查詢的方法及其系統(tǒng)。[0010]根據(jù)本發(fā)明的一個方面,提供了一種用于數(shù)據(jù)查詢的方法,包括:接收查詢請求,所述查詢請求包括查詢語句;計算所述查詢語句中關(guān)鍵組成元素的特征值;基于所述關(guān)鍵組成元素的特征值匹配歷史查詢語句的執(zhí)行計劃中節(jié)點的特征值;響應(yīng)于匹配到對應(yīng)所述節(jié)點的特征值,基于所述節(jié)點對應(yīng)的執(zhí)行計劃,生成所述查詢語句的執(zhí)行計劃。[0011]根據(jù)本發(fā)明的另一個方面,提供了一種用于數(shù)據(jù)查詢的系統(tǒng),包括:接收裝置,被配置用于接收查詢請求,所述查詢請求包括查詢語句;計算裝置,被配置用于計算所述查詢語句中關(guān)鍵組成元素的特征值;匹配裝置,被配置用于基于所述關(guān)鍵組成元素的特征值匹配歷史查詢語句的執(zhí)行計劃中節(jié)點的特征值;執(zhí)行計劃生成裝置,被配置用于響應(yīng)于匹配到對應(yīng)所述節(jié)點的特征值,基于所述節(jié)點對應(yīng)的執(zhí)行計劃,生成所述查詢語句的執(zhí)行計劃。[0012]采用本發(fā)明的一個【具體實施方式】的Bitmap匹配算法較之之前的字符串比較算法大幅度提高了查詢速度。另一方面本發(fā)明的方法和系統(tǒng)有利于提高執(zhí)行計劃的重用程度,進而提高生成查詢語句的執(zhí)行計劃的效率以及數(shù)據(jù)庫管理系統(tǒng)在性能上的穩(wěn)定性?!緦@綀D】【附圖說明】[0013]通過結(jié)合附圖對本公開示例性實施方式進行更詳細的描述,本公開的上述以及其它目的、特征和優(yōu)勢將變得更加明顯,其中,在本公開示例性實施方式中,相同的參考標號通常代表相同部件。[0014]圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機系統(tǒng)/服務(wù)器12的框圖。[0015]圖2示出了本發(fā)明用于數(shù)據(jù)查詢的方法的第一【具體實施方式】。[0016]圖3示出了如何具體確定一個查詢語句的關(guān)鍵組成元素的特征值。[0017]圖4示出了本發(fā)明用于確定執(zhí)行計劃的節(jié)點的bitmap特征值的【具體實施方式】。[0018]圖5示出了本發(fā)明用于數(shù)據(jù)查詢的一個具體實例。[0019]圖6示出了本發(fā)明用于數(shù)據(jù)查詢的系統(tǒng)的框架示意圖?!揪唧w實施方式】[0020]下面將參照附圖更詳細地描述本公開的優(yōu)選實施方式。雖然附圖中顯示了本公開的優(yōu)選實施方式,然而應(yīng)該理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施方式所限制。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的范圍完整地傳達給本領(lǐng)域的技術(shù)人員。[0021]所屬【
技術(shù)領(lǐng)域
】的技術(shù)人員知道,本發(fā)明可以實現(xiàn)為系統(tǒng)、方法或計算機程序產(chǎn)品。因此,本公開可以具體實現(xiàn)為以下形式,即:可以是完全的硬件、也可以是完全的軟件(包括固件、駐留軟件、微代碼等),還可以是硬件和軟件結(jié)合的形式,本文一般稱為"電路"、"模塊"或"系統(tǒng)"。此外,在一些實施例中,本發(fā)明還可以實現(xiàn)為在一個或多個計算機可讀介質(zhì)中的計算機程序產(chǎn)品的形式,該計算機可讀介質(zhì)中包含計算機可讀的程序代碼。[0022]可以采用一個或多個計算機可讀的介質(zhì)的任意組合。計算機可讀介質(zhì)可以是計算機可讀信號介質(zhì)或者計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)例如可以是--但不限于--電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連接、便攜式計算機磁盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPROM或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。[0023]計算機可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括--但不限于--電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質(zhì)還可以是計算機可讀存儲介質(zhì)以外的任何計算機可讀介質(zhì),該計算機可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。[0024]計算機可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括--但不限于--無線、電線、光纜、RF等等,或者上述的任意合適的組合。[0025]可以以一種或多種程序設(shè)計語言或其組合來編寫用于執(zhí)行本發(fā)明操作的計算機程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言-諸如Java、Smalltalk、C++,還包括常規(guī)的過程式程序設(shè)計語言-諸如"C"語言或類似的程序設(shè)計語言。程序代碼可以完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機上部分在遠程計算機上執(zhí)行、或者完全在遠程計算機或服務(wù)器上執(zhí)行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網(wǎng)絡(luò)--包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)-連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。[0026]下面將參照本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機程序指令實現(xiàn)。這些計算機程序指令可以提供給通用計算機、專用計算機或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機器,這些計算機程序指令通過計算機或其它可編程數(shù)據(jù)處理裝置執(zhí)行,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。[0027]也可以把這些計算機程序指令存儲在能使得計算機或其它可編程數(shù)據(jù)處理裝置以特定方式工作的計算機可讀介質(zhì)中,這樣,存儲在計算機可讀介質(zhì)中的指令就產(chǎn)生出一個包括實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instructionmeans)的制造品(manufacture)〇[0028]也可以把計算機程序指令加載到計算機、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計算機、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計算機實現(xiàn)的過程,從而使得在計算機或其它可編程裝置上執(zhí)行的指令能夠提供實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過程。[0029]圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機系統(tǒng)/服務(wù)器12的框圖。圖1顯示的計算機系統(tǒng)/服務(wù)器12僅僅是一個示例,不應(yīng)對本發(fā)明實施例的功能和使用范圍帶來任何限制。[0030]如圖1所示,計算機系統(tǒng)/服務(wù)器12以通用計算設(shè)備的形式表現(xiàn)。計算機系統(tǒng)/服務(wù)器12的組件可以包括但不限于:一個或者多個處理器或者處理單元16,系統(tǒng)存儲器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲器28和處理單元16)的總線18。[0031]總線18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲器總線或者存儲器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉例來說,這些體系結(jié)構(gòu)包括但不限于工業(yè)標準體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC)總線,增強型ISA總線、視頻電子標準協(xié)會(VESA)局域總線以及外圍組件互連(PCI)總線。[0032]計算機系統(tǒng)/服務(wù)器12典型地包括多種計算機系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是任何能夠被計算機系統(tǒng)/服務(wù)器12訪問的可用介質(zhì),包括易失性和非易失性介質(zhì),可移動的和不可移動的介質(zhì)。[0033]系統(tǒng)存儲器28可以包括易失性存儲器形式的計算機系統(tǒng)可讀介質(zhì),例如隨機存取存儲器(RAM)30和/或高速緩存存儲器32。計算機系統(tǒng)/服務(wù)器12可以進一步包括其它可移動/不可移動的、易失性/非易失性計算機系統(tǒng)存儲介質(zhì)。僅作為舉例,存儲系統(tǒng)34可以用于讀寫不可移動的、非易失性磁介質(zhì)(圖1未顯示,通常稱為"硬盤驅(qū)動器")。盡管圖1中未示出,可以提供用于對可移動非易失性磁盤(例如"軟盤")讀寫的磁盤驅(qū)動器,以及對可移動非易失性光盤(例如⑶-ROM,DVD-ROM或者其它光介質(zhì))讀寫的光盤驅(qū)動器。在這些情況下,每個驅(qū)動器可以通過一個或者多個數(shù)據(jù)介質(zhì)接口與總線18相連。存儲器28可以包括至少一個程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個)程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實施例的功能。[0034]具有一組(至少一個)程序模塊42的程序/實用工具40,可以存儲在例如存儲器28中,這樣的程序模塊42包括--但不限于--操作系統(tǒng)、一個或者多個應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實現(xiàn)。程序模塊42通常執(zhí)行本發(fā)明所描述的實施例中的功能和/或方法。[0035]計算機系統(tǒng)/服務(wù)器12也可以與一個或多個外部設(shè)備14(例如鍵盤、指向設(shè)備、顯示器24等)通信,還可與一個或者多個使得用戶能與該計算機系統(tǒng)/服務(wù)器12交互的設(shè)備通信,和/或與使得該計算機系統(tǒng)/服務(wù)器12能與一個或多個其它計算設(shè)備進行通信的任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(I/O)接口22進行。并且,計算機系統(tǒng)/服務(wù)器12還可以通過網(wǎng)絡(luò)適配器20與一個或者多個網(wǎng)絡(luò)(例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器20通過總線18與計算機系統(tǒng)/服務(wù)器12的其它模塊通信。應(yīng)當(dāng)明白,盡管圖中未示出,可以結(jié)合計算機系統(tǒng)/服務(wù)器12使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動器、冗余處理單元、外部磁盤驅(qū)動陣列、RAID系統(tǒng)、磁帶驅(qū)動器以及數(shù)據(jù)備份存儲系統(tǒng)等。[0036]現(xiàn)在參看圖2,圖2示出了本發(fā)明用于數(shù)據(jù)查詢的方法的第一【具體實施方式】。在步驟201中,接收查詢請求,所述查詢請求包括查詢語句。優(yōu)選地,所述查詢語句是結(jié)構(gòu)化查詢語句。一個查詢語句的示例如:select*fromTl,T2whereTl.Cl=T2.C2。在步驟203中,計算所述查詢語句中關(guān)鍵組成元素的特征值。一般而言,查詢語句中的關(guān)鍵組成元素重要的主要是表、列,以及對所述表和列進行操作的謂詞,當(dāng)然本領(lǐng)域技術(shù)人員根據(jù)實際需要,也可以確定查詢語句中的其它組成元素作為關(guān)鍵組成元素,例如聚集操作,排序操作,去重操作等所涉及的相關(guān)集合等??捎貌捎媒y(tǒng)一的特定編碼方法,將查詢語句中涉及的各個關(guān)鍵組成元素賦予全局唯一值,從而獲得了所述查詢語句中關(guān)鍵組成元素的特征值。優(yōu)選地,該特定編碼方法可以采用bitmap編碼法,所述bitmap編碼法就是用一個bit(比特)位來標記某個元素對于的值,關(guān)于bitmap編碼法的具體介紹,可以進一步參考http://en.wikipedia.org/wiki/Bit-array維基百科。bitmap是一種非常適合本專利提出的細粒度查詢執(zhí)行計劃的數(shù)據(jù)結(jié)構(gòu),它具有以下特征:a)它可以使用統(tǒng)一的方式表示基本元素以及元素的組合;b)具有良好的可擴展性;c)良好的支持比較、組合和拆分操作;d)具有壓縮存儲格式以節(jié)省存儲空間。而對于如何用bitmap編碼表示查詢語言的關(guān)鍵組成元素的bitmap特征值則在下文中進行詳細介紹。當(dāng)然,本領(lǐng)域技術(shù)人員明了,基于本申請可以采用任何適用的編碼方法,而本申請的下文將主要基于bitmap編碼法介紹本發(fā)明。在步驟205中,基于所述關(guān)鍵組成元素的特征值匹配歷史查詢語句的執(zhí)行計劃中節(jié)點的特征值。一般而言,數(shù)據(jù)庫管理系統(tǒng)中都會存儲有調(diào)優(yōu)的歷史查詢語句的執(zhí)行計劃,現(xiàn)有的執(zhí)行計劃都是以樹結(jié)構(gòu)的形式進行存儲,其中根節(jié)點和各個節(jié)點一般為謂詞,而葉子節(jié)點則為謂詞操作對象,一般為表或者表的列。本領(lǐng)域技術(shù)人員了解,執(zhí)行計劃的節(jié)點對應(yīng)的執(zhí)行計劃是指由該節(jié)點及其該節(jié)點的所有子節(jié)點、所有葉子節(jié)點所組成的執(zhí)行計劃,比如,一個執(zhí)行計劃中的根節(jié)點對應(yīng)的執(zhí)行計劃是指整個執(zhí)行計劃,而對于其它子節(jié)點對應(yīng)的執(zhí)行計劃是指該子節(jié)點及其該子節(jié)點的所有子節(jié)點、所有葉子節(jié)點所組成的執(zhí)行計劃。優(yōu)選地,預(yù)先可以根據(jù)這些優(yōu)化的執(zhí)行計劃的節(jié)點及其子節(jié)點和葉子節(jié)點所涉及的表、列或謂詞操作基于bitmap編碼法生成各個節(jié)點的特征值。節(jié)點的bitmap特征值的優(yōu)選具體產(chǎn)生方法將在后面進行更為詳細的說明。在步驟207中,響應(yīng)于匹配到對應(yīng)所述相關(guān)節(jié)點的特征值,基于所述相關(guān)節(jié)點對應(yīng)的執(zhí)行計劃,生成所述查詢語句的執(zhí)行計劃。優(yōu)選地,將所述相關(guān)節(jié)點對應(yīng)的執(zhí)行計劃作為所述查詢語句的執(zhí)行計劃的至少一部分。優(yōu)選地,在上述匹配過程中,一般從執(zhí)行計劃的根節(jié)點開始進行匹配,可以使用精確匹配、子集匹配、超集匹配和模糊匹配等。其中所述精確匹配是指查詢語句的bitmap特征值與執(zhí)行計劃中所有節(jié)點的Bitmap特征值完全一致,不同查詢中表、列和謂詞的順序不同可以適用于此類匹配,若節(jié)點的特征值完全相同則完成匹配,將該執(zhí)行計劃作為新輸入查詢語句的執(zhí)行計劃。所述子集匹配是指當(dāng)新輸入查詢語句的特征值和已有執(zhí)行計劃中的節(jié)點的一部分Bitmap特征值一致,可以直接使用該部分的執(zhí)行計劃。所謂超集匹配是指新輸入的語句的特征值包含了已有執(zhí)行計劃的節(jié)點的bitmap特征值,即是其超集,即以已有執(zhí)行計劃作為基礎(chǔ),生成新的執(zhí)行計劃。需要注意的是,遇到符合超集匹配的節(jié)點后,該部分執(zhí)行計劃直接用于生成新的執(zhí)行計劃,而將查詢語句剩余未匹配部分,與其他已有執(zhí)行計劃特征值匹配,最后將所有匹配的部分執(zhí)行計劃進行組合,生成新的執(zhí)行計劃。如果其剩余特征值與其他已有執(zhí)行計劃的特征值都不匹配,則根據(jù)原有生成執(zhí)行計劃的方法重新生成剩余計劃。模糊匹配是指新輸入的查詢語句的特征值與歷史查詢語句的執(zhí)行計劃的部分節(jié)點的特征值最大限度的一致,即可截取其匹配部分用到新的查詢語句的執(zhí)行計劃的部分計劃中。當(dāng)然,本領(lǐng)域技術(shù)人員明了,當(dāng)無法在已有的歷史查詢語句的執(zhí)行計劃中找到匹配的執(zhí)行計劃,則需要按照現(xiàn)有技術(shù)對查詢請求的查詢語句規(guī)劃新的執(zhí)行計劃。[0037]本發(fā)明用于數(shù)據(jù)查詢的方法還包括用到以下數(shù)據(jù)結(jié)構(gòu)至少之一:基于數(shù)據(jù)庫管理系統(tǒng)(DBMS)中的所有表建立全局表集合序列(GlobalTableSetSequence);基于所有表的對應(yīng)列建立全局列集合序列(GlobalColumnSetSequence);對數(shù)據(jù)庫管理系統(tǒng)中的所有謂詞建立對應(yīng)的謂詞bitmap編碼。一般而言,查詢語句的關(guān)鍵組成元素包括表、列和謂詞,但本發(fā)明并不限于這些關(guān)鍵組成元素,本領(lǐng)域技術(shù)人員基于本申請根據(jù)實際需要還可以將其它的關(guān)鍵組成元素作為關(guān)鍵關(guān)鍵組成元素,例如聚集操作,排序操作,去重操作等元素。其中所述全局表集合序列(GlobalTableSetSequence)的結(jié)構(gòu)可以是數(shù)組等形式,例如其每條記錄的結(jié)構(gòu)可以如下[0038]TableList{intindex;//索引,全局唯一表編號char*name;//表名}[0039]表示全局列集合序列(GlobalColumnSetSequence)中每一個記錄的數(shù)據(jù)結(jié)構(gòu)可采用如下結(jié)構(gòu):[0040]ColumnLIst{mtindex;//索I丨,全局唯一列編號char*columnname;//列名char*tablename;//各列所屬表名}謂詞的bitmap特征值的表述數(shù)據(jù)結(jié)構(gòu)可以為:Predicate{BYTEpredCode;//謂詞編碼,例如謂詞=可編碼為(Ox)0100BYTEoperands[η];//操作數(shù)的bitmap}[0041]下面詳細介紹其中如何計算查詢語句中關(guān)鍵組成元素的特征值。由于已經(jīng)建立了所述全局表集合序列、全局列集合序列和謂詞bitmap編碼中至少之一,優(yōu)選地,可以同時建立所述全局表集合序列、全局列集合序列和謂詞bitmap編碼,根據(jù)所述全局表集合序列、全局列集合序列和謂詞bitmap編碼計算所述查詢語句的表bitmap特征值、列bitmap特征值和謂詞bitmap特征值。根據(jù)系統(tǒng)內(nèi)所有表和列生成全局表集合序列和全局列集合序列,用來確定數(shù)據(jù)庫中所有表或指定表集合及其列都有唯一的bitmap位位置。假設(shè)數(shù)據(jù)庫管理系統(tǒng)有四個表:表T1(C1,C2);T2(C1,C2);T3(C1);T4(C1),則其全局表集合序列為:Tl,T2,T3,T4,因為其有4個表,則其對應(yīng)的bitmap編碼應(yīng)該有4個bit位序列,其中T1對應(yīng)于該bit位序列的第一位,T2對應(yīng)于該bit位序列的第二位,并依此類推。其全局列集合序列為:T1.Cl,Tl.C2,T2.Cl,T2.C2,T3.Cl,T4.C1,因為有六個bit位,則其對應(yīng)的bitmap編碼應(yīng)該有6個bit位序列,其中Tl.C1對應(yīng)于該bit位序列的第一位,Tl.C2對應(yīng)于該bit位序列的第二位,并依此類推。在數(shù)據(jù)庫管理系統(tǒng)中對相應(yīng)謂詞進行bitmap編碼。示例性的,如謂詞>、<、=、>=、<=、〈>,.....,則其bitmap編碼可以示例性地分別規(guī)定為〇〇〇1、〇〇1〇、〇1〇〇、〇1〇1、〇11〇、〇〇11、......,從而確保數(shù)據(jù)庫管理系統(tǒng)中的謂詞都存在全局唯一的bitmap位值。當(dāng)然,一種可能的擴展是,把所有的謂詞,用和對表和列相似的編碼方式進行編碼和匹配。[0042]圖3示出了如何具體確定一個查詢語句的關(guān)鍵組成元素的特征值。在步驟301中,確定查詢語句的關(guān)鍵組成元素。在步驟303中,根據(jù)所述全局表集合序列、全局列集合序列和謂詞bitmap編碼中至少之一計算所述查詢語句的對應(yīng)的表bitmap特征值、列bitmap特征值和謂詞bitmap特征值中至少之一。以查詢語句select*fromTl,T2whereTl.C1=T2.C2為例,其中關(guān)鍵組成元素是表Tl,T2,列Tl.Cl,T2.C2,以及謂詞為"=",再考慮到前面提到的所建立的全局表集合序列,則該查詢語句的表bitmap特征值為:1100,其表述該查詢語句在全局表集合序列所對應(yīng)的表bitmap特征值為1100,即該查詢語句只涉及了表T1、T2,因此在對應(yīng)的bitmap的對應(yīng)bit位上其值為1,而該查詢語句沒有涉及表T3、T4,因此在對應(yīng)的bitmap的對應(yīng)bit位上其值為0,因此得到該查詢語句的表bitmap特征值為:1100。依次類推可以得出該查詢語句的列bitmap特征值為:100100。由于謂詞部分涉及了謂詞(操作本身)和謂詞所操作的數(shù)據(jù),因此按照前面所提到謂詞predicate結(jié)構(gòu)的表述方法,該查詢語句的謂詞bitmap特征值:0100100100,其中0100是謂詞=本身的bitmap編碼,而100100則是該查詢語句的列bitmap特征值,其表述查詢語句中的"whereTl.C1=T2.C2"的含義。[0043]圖4示出了本發(fā)明用于確定執(zhí)行計劃的節(jié)點的bitmap特征值的【具體實施方式】??梢曰跀?shù)據(jù)庫管理系統(tǒng)的所述全局表集合序列、全局列集合序列和謂詞bitmap編碼中至少之一計算所述執(zhí)行計劃的至少一個節(jié)點的對應(yīng)的表bitmap屬性特征值、列bitmap屬性特征值、謂詞bitmap屬性特征值中的至少之一。其中所述基于所述全局表集合序列、全局列集合序列和謂詞bitmap編碼中至少之一計算所述執(zhí)行計劃的至少一個節(jié)點的對應(yīng)的表bitmap屬性特征值、列bitmap屬性特征值、謂詞bitmap屬性特征值中的至少之一還包括:根據(jù)所述至少一個節(jié)點和該節(jié)點對應(yīng)的子節(jié)點和葉子節(jié)點中所用到的所有表、所有列和所有謂詞中至少之一,結(jié)合所述全局表集合序列、全局列集合序列和謂詞bitmap編碼中至少之一計算所述執(zhí)行計劃的至少一個節(jié)點的表bitmap屬性特征值、列bitmap屬性特征值、謂詞bitmap屬性特征值。一般而言,優(yōu)化的歷史查詢語句的執(zhí)行計劃通常被劃分成有執(zhí)行計劃節(jié)點(Node)組成的查詢樹結(jié)構(gòu)。每個節(jié)點在程序?qū)崿F(xiàn)中都會被實現(xiàn)為一個類或結(jié)構(gòu)體,其中存儲有該節(jié)點對應(yīng)的各種屬性。本發(fā)明將對現(xiàn)有數(shù)據(jù)庫管理系統(tǒng)的執(zhí)行計劃節(jié)點進行擴展,在其中增加一個或多個bitmap屬性,用于表示以該節(jié)點為父節(jié)點的執(zhí)行計劃樹所表示的執(zhí)行計劃所涉及的所有關(guān)鍵組成元素:[0044]Node{____//原有域(Fields)BYTETableBit.Map[n];BYTEColuranBitMap[n];BYTEPredicateBitMap[n];}[0045]其中TableBitMap[n]用于描述該節(jié)點涉及的所有表(table)的表bitmap屬性特征值,ColumnBitMap[n]用于描述該節(jié)點涉及的所有列(column)列bitmap屬性特征值,PredicateBitMap[n]用于描述該節(jié)點涉及的所有謂詞(predicate)bitmap屬性特征值,當(dāng)然本領(lǐng)域技術(shù)人員了解,可以只為節(jié)點增加上述屬性的至少之一?,F(xiàn)在參考圖4,圖4示例性示出了全局表集合序列401(GTSS:GlobalTableSetSequence)、全局列集合序列403(GCSS:GlobalColumnSetSequence),為了加快匹配速度,可以將保存優(yōu)化的歷史查詢語言執(zhí)行計劃的全局執(zhí)行計劃列表405(GPC:GlobalPlanCache)中的頻繁匹配的查詢計劃存儲在本地cache中,其它的存在硬盤中以加快匹配速度并節(jié)省空間,而執(zhí)行計劃節(jié)點樹407則示例性示出了歷史查詢語句"Select*fromTl,T2,T3whereT1.C1=T2.C2andT2.C2>T3.Cl"的執(zhí)行計劃的樹結(jié)構(gòu),對于根節(jié)點409,通過深度遍歷或者廣度遍歷的方法,可以確定根節(jié)點409共涉及了三個表T1、T2和T3、涉及了列Tl.C1、T2.C2、T3.C1,并涉及謂詞為"="(0x0100)和">"(0x0001),而根據(jù)前面所介紹的方法,則可以得到該根節(jié)點409的表bitmap屬性特征值為:(Ox)1110,眾所周知,Ox用于表示編碼為二進制。而其謂詞bitmap屬性特征值為:'0x0100100100'和'0x0001000110',其用于表征謂詞部分"whereTl.Cl=T2.C2andT2.C2>T3.C1"。分別將根節(jié)點的表bitmap屬性特征值(TableBitSet)和謂詞bitmap屬性特征值(PredicateBitSet)賦予該根節(jié)點并存儲。依次類推可以得到子節(jié)點411的表bitmap屬性特征值和謂詞bitmap屬性特征值分別為0x1100和^OxOlOOlOOKKV,圖4中示出了根節(jié)點409、子節(jié)點411的bitmap屬性特征值。對于葉子節(jié)點,一般不需要為其擴展的bitmap屬性賦予相關(guān)bitmap屬性特征值。圖4給出的是根節(jié)點409、子節(jié)點(Subnode)和葉子節(jié)點(Leafnode)共三層的結(jié)構(gòu)樹,對于具有更多層的結(jié)構(gòu)樹,本領(lǐng)域技術(shù)人員完全可以基于圖4的示例對每一個節(jié)點進行遍歷計算和賦予其相關(guān)bitmap屬性特征值。這樣就可以建立起各節(jié)點具有相關(guān)bitmap屬性特征值的執(zhí)行計劃樹。本領(lǐng)域技術(shù)人員明了,也可以只是對執(zhí)行計劃書的部分節(jié)點計算和賦予其相關(guān)bitmap屬性特征值。[0046]在已經(jīng)獲得了新輸入的查詢語言的關(guān)鍵組成元素的bitmap特征值后,就可以將查詢語言的關(guān)鍵組成元素的bitmap特征值與存儲的各個執(zhí)行計劃的節(jié)點的bitmap屬性特征值進行匹配。在本發(fā)明之前的匹配是整個查詢的匹配,例如,新的查詢和老的查詢文本完全匹配,查詢計劃才能匹配。而本發(fā)明的一個【具體實施方式】使用bitmap描述查詢計劃的每個節(jié)點,新的查詢和老的查詢可以部分匹配,在找到匹配的節(jié)點后,可以重用原有查詢計劃的一部分,從而大大地提高了原來優(yōu)化的執(zhí)行計劃的利用率,并較大程度上節(jié)省了生成對于新的查詢語言的執(zhí)行計劃的成本??梢杂貌樵冋埱笾械牟樵冋Z言的關(guān)鍵組成元素的對應(yīng)bitmap特征值去逐一匹配所述全局執(zhí)行計劃列表中的各個執(zhí)行計劃的各個節(jié)點,匹配的算法可以由本領(lǐng)域技術(shù)人員根據(jù)實際需要而采用精確匹配,子集匹配,超集匹配和模糊匹配中的至少一種。遍歷匹配一個執(zhí)行計劃的各個節(jié)點可以采用廣度優(yōu)先或深度優(yōu)先算法。而對于所述全局執(zhí)行計劃列表中的各個執(zhí)行計劃的匹配可以采用并行的方式進行匹配,也可以采用逐一串行遍歷的方式直至找到匹配的執(zhí)行計劃節(jié)點。當(dāng)然本領(lǐng)域技術(shù)人員可以基于本申請構(gòu)思出各種遍歷各個執(zhí)行計劃的各個節(jié)點的方法。優(yōu)選可以將所述關(guān)鍵組成元素的特征值與所述執(zhí)行計劃中節(jié)點的對應(yīng)特征值取與,響應(yīng)于取與后的結(jié)果等于所述關(guān)鍵組成元素的特征值,確定匹配到對應(yīng)所述節(jié)點的特征值。當(dāng)匹配到一個節(jié)點,就可以將所述節(jié)點對應(yīng)的執(zhí)行計劃作為所述查詢語句的執(zhí)行計劃的至少一部分。圖5示出了本發(fā)明用于數(shù)據(jù)查詢的具體實例。如前所述,在數(shù)據(jù)庫管理系統(tǒng)中維護一個全局表集合序列401(GlobalTableSetSequence):1'1,12,13,14、全局列集合序列403(61<^&1(]〇1111]111SetSequence):TLCl,Tl.C2,Τ2·Cl,Τ2·C2,Τ3·Cl,Τ4·Cl和全局執(zhí)行計劃列表405,示例性示出其包含下列優(yōu)化的SQL:[0047]Planl(Select*fromTl,T3whereTl.Cl<T3.Cl)[0048]Plan2(Select*fromTl,T2,T3whereTl.Cl=T2.C2andT2.C2>T3.Cl)[0049]其中執(zhí)行計劃1(Planl)用樹狀存儲結(jié)構(gòu)501表示,執(zhí)行計劃2(Plan2)用樹狀存儲結(jié)構(gòu)407表示,其中為執(zhí)行計劃1的根節(jié)點生成的表bitmap屬性特征值為:1010,列bitmap屬性特征值為:100110,謂詞bitmap屬性特征值:0010100100和0001000110。而為Plan2的根節(jié)點503表bitmap屬性特征值為:1110,列bitmap屬性特征值為:100110,謂詞bitmap屬性特征值為:0100100100和0001000110,為Plan2的子節(jié)點411表bitmap屬性特征值為:11〇〇,列bitmap屬性特征值為:100100,謂詞bitmap屬性特征值為:0100100100。如上文所述,根據(jù)輸入的新的查詢語句(seleet*fromTl,T2whereT1.C1=T2.C2)生成表bitmap特征值為:1100,列bitmap特征值為:100100,謂詞bitmap特征值為:0100100100。在匹配過程中,新的Plan與Planl對以后能夠的表特征值進行對應(yīng)匹配算法(精確匹配、子集匹配、超集匹配、模糊匹配等),本例子里面選用超集或者子集匹配,進行匹配時,優(yōu)選地采用將所述新查詢語句(NewQuery)的關(guān)鍵組成元素的特征值與執(zhí)行計劃中節(jié)點的特征值取與的方式來進行匹配,比如當(dāng)新的查詢語句關(guān)鍵組成元素的bitmap特征值與執(zhí)行計劃1的根節(jié)點501的bitmap屬性特征值進行比較時,比如先對表的特征值進行比較,發(fā)現(xiàn)執(zhí)行計劃1根節(jié)點501的表bitmap屬性特征值與新的查詢語句的表bitmap特征值1010&1100=1000!=1010或者1100,即結(jié)果1000不等于執(zhí)行計劃1的表bitmap屬性特征值與新的查詢語句的表bitmap特征值中任一個,因此執(zhí)行計劃1與查詢語句從根節(jié)點501不匹配,則無需進行執(zhí)行計劃1的子節(jié)點的進一步的匹配。而對于執(zhí)行計劃2,新查詢語句的表bitmap特征值、列bitmap特征值與執(zhí)行計劃2的對應(yīng)bitmap屬性特征值匹配,但是新查詢語句的謂詞bitmap特征值是執(zhí)行計劃2的對應(yīng)的謂詞bitmap屬性特征值的子集(注意謂詞的匹配是逐個進行的,例如,將新查詢語句的每個謂詞,與已有執(zhí)行計劃的所有謂詞逐個進行匹配,而不是像表或列的匹配那樣一次完成),因此應(yīng)該繼續(xù)對子節(jié)點411進行匹配,結(jié)果發(fā)現(xiàn)新查詢語句的關(guān)鍵元素bitmap特征值與執(zhí)行計劃2的對應(yīng)的bitmap屬性特征值是完全匹配的,則意味著執(zhí)行計劃2的子節(jié)點411對應(yīng)的執(zhí)行計劃可以部分被新的查詢語句作為執(zhí)行計劃,其中子節(jié)點411對應(yīng)的執(zhí)行計劃是子節(jié)點411及其子節(jié)點411的兩個葉子節(jié)點所組成的執(zhí)行計劃,從而較大程度上節(jié)省了采用現(xiàn)有方法重新生成該查詢語句的執(zhí)行計劃的成本。[0050]本發(fā)明另一方面還提供一種用于數(shù)據(jù)查詢的系統(tǒng)600。該系統(tǒng)600包括:接收裝置601,其被配置用于接收查詢請求,所述查詢請求包括查詢語句;計算裝置603,被配置用于計算所述查詢語句中關(guān)鍵組成元素的特征值;匹配裝置605,被配置用于基于所述關(guān)鍵組成元素的特征值匹配歷史查詢語句的執(zhí)行計劃中節(jié)點的特征值;執(zhí)行計劃生成裝置607,被配置用于響應(yīng)于匹配到對應(yīng)所述節(jié)點的特征值,基于所述節(jié)點對應(yīng)的執(zhí)行計劃,生成所述查詢語句的執(zhí)行計劃。關(guān)于接收裝置601、計算裝置603、匹配裝置605和執(zhí)行計劃生成裝置607的具體實現(xiàn)方法已經(jīng)在上文進行了詳細說明,在此不再贅述。[0051]優(yōu)選地,所述系統(tǒng)600還包括以下至少之一:全局表集合序列建立裝置,被配置用于基于數(shù)據(jù)庫管理系統(tǒng)中的所有表建立全局表集合序列;全局列集合序列建立裝置,被配置用于基于所有表的對應(yīng)列建立全局列集合序列;謂詞bitmap編碼建立裝置,被配置用于對數(shù)據(jù)庫管理系統(tǒng)中的所有謂詞建立對應(yīng)的謂詞bitmap編碼。[0052]優(yōu)選地,其中所述計算所述查詢語句中關(guān)鍵組成元素的特征值包括:根據(jù)所述全局表集合序列、所述全局列集合序列和所述謂詞bitmap編碼中至少之一計算所述查詢語句對應(yīng)的表bitmap特征值、列bitmap特征值和謂詞bitmap特征值中至少之一,其中所述關(guān)鍵組成元素包括以下至少之一:表、列、謂詞。[0053]優(yōu)選地,所述系統(tǒng)600還包括:bitmap屬性增加裝置,被配置用于對歷史查詢語句的執(zhí)行計劃的至少一個節(jié)點增加以下至少之一的bitmap屬性:表bitmap屬性、列bitmap屬性、謂詞bitmap屬性。[0054]優(yōu)選地,所述系統(tǒng)600還包括:bitmap屬性特征值計算裝置,被配置用于基于所述全局表集合序列、全局列集合序列和謂詞bitmap編碼中至少之一計算所述執(zhí)行計劃的至少一個節(jié)點的對應(yīng)的表bitmap屬性特征值、列bitmap屬性特征值、謂詞bitmap屬性特征值中的至少之一。[0055]優(yōu)選地,其中所述bitmap屬性特征值計算裝置還包括:用于根據(jù)所述至少一個節(jié)點和該節(jié)點對應(yīng)的子節(jié)點和葉子節(jié)點中所用到的所有表、所有列和所有謂詞中至少之一,結(jié)合所述全局表集合序列、全局列集合序列和謂詞bitmap編碼中對應(yīng)的至少之一計算所述執(zhí)行計劃的至少一個節(jié)點的表bitmap屬性特征值、列bitmap屬性特征值、謂詞bitmap屬性特征值的裝置。[0056]優(yōu)選地,其中所述基于所述關(guān)鍵組成元素的特征值匹配歷史查詢語句的執(zhí)行計劃中節(jié)點的特征值包括以下至少之一:精確匹配、子集匹配、超集匹配和模糊匹配。[0057]優(yōu)選地,所述匹配裝置包括:取與裝置,被配置用于將所述關(guān)鍵組成元素的特征值與所述執(zhí)行計劃中節(jié)點的對應(yīng)特征值取與;確定匹配裝置,被配置用于響應(yīng)于取與后的結(jié)果等于所述關(guān)鍵組成元素的特征值,確定匹配到對應(yīng)所述節(jié)點的特征值。[0058]優(yōu)選地,其中所述執(zhí)行計劃生成裝置包括:用于將所述節(jié)點對應(yīng)的執(zhí)行計劃作為所述查詢語句的執(zhí)行計劃的至少一部分的裝置。[0059]優(yōu)選地,其中所述歷史查詢語句的執(zhí)行計劃是已經(jīng)優(yōu)化的執(zhí)行計劃。[0060]優(yōu)選地,其中所述查詢語句是結(jié)構(gòu)化查詢語句。[0061]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)中,方框中所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。[0062]以上已經(jīng)描述了本發(fā)明的各實施例,上述說明是示例性的,并非窮盡性的,并且也不限于所披露的各實施例。在不偏離所說明的各實施例的范圍和精神的情況下,對于本
技術(shù)領(lǐng)域
的普通技術(shù)人員來說許多修改和變更都是顯而易見的。本文中所用術(shù)語的選擇,旨在最好地解釋各實施例的原理、實際應(yīng)用或?qū)κ袌鲋械募夹g(shù)的技術(shù)改進,或者使本
技術(shù)領(lǐng)域
的其它普通技術(shù)人員能理解本文披露的各實施例?!緳?quán)利要求】1.一種用于數(shù)據(jù)查詢的方法,包括:接收查詢請求,所述查詢請求包括查詢語句;計算所述查詢語句中關(guān)鍵組成元素的特征值;基于所述關(guān)鍵組成元素的特征值匹配歷史查詢語句的執(zhí)行計劃中節(jié)點的特征值;響應(yīng)于匹配到對應(yīng)所述節(jié)點的特征值,基于所述節(jié)點對應(yīng)的執(zhí)行計劃,生成所述查詢語句的執(zhí)行計劃。2.根據(jù)權(quán)利要求1所述的方法,所述方法還包括以下至少之一:基于數(shù)據(jù)庫管理系統(tǒng)中的所有表建立全局表集合序列;基于所有表的對應(yīng)列建立全局列集合序列;對數(shù)據(jù)庫管理系統(tǒng)中的所有謂詞建立對應(yīng)的謂詞bitmap編碼。3.根據(jù)權(quán)利要求2所述的方法,其中所述計算所述查詢語句中關(guān)鍵組成元素的特征值包括:根據(jù)所述全局表集合序列、所述全局列集合序列和所述謂詞bitmap編碼中至少之一計算所述查詢語句對應(yīng)的表bitmap特征值、列bitmap特征值和謂詞bitmap特征值中至少之一,其中所述關(guān)鍵組成元素包括以下至少之一:表、列、謂詞。4.根據(jù)權(quán)利要求2所述的方法,所述方法還包括:對歷史查詢語句的執(zhí)行計劃的至少一個節(jié)點增加以下至少之一的bitmap屬性:表bitmap屬性、列bitmap屬性、謂詞bitmap屬性。5.根據(jù)權(quán)利要求4所述的方法,所述方法還包括:基于所述全局表集合序列、全局列集合序列和謂詞bitmap編碼中至少之一計算所述執(zhí)行計劃的至少一個節(jié)點的對應(yīng)的表bitmap屬性特征值、列bitmap屬性特征值、謂詞bitmap屬性特征值中的至少之一。6.根據(jù)權(quán)利要求5所述的方法,其中所述基于所述全局表集合序列、全局列集合序列和謂詞bitmap編碼中至少之一計算所述執(zhí)行計劃的至少一個節(jié)點的對應(yīng)的表bitmap屬性特征值、列bitmap屬性特征值、謂詞bitmap屬性特征值中的至少之一還包括:根據(jù)所述至少一個節(jié)點和該節(jié)點對應(yīng)的子節(jié)點和葉子節(jié)點中所用到的所有表、所有列和所有謂詞中至少之一,結(jié)合所述全局表集合序列、全局列集合序列和謂詞bitmap編碼中對應(yīng)的至少之一計算所述執(zhí)行計劃的至少一個節(jié)點的表bitmap屬性特征值、列bitmap屬性特征值、謂詞bitmap屬性特征值。7.根據(jù)權(quán)利要求1所述的方法,其中所述基于所述關(guān)鍵組成元素的特征值匹配歷史查詢語句的執(zhí)行計劃中節(jié)點的特征值包括以下至少之一:精確匹配、子集匹配、超集匹配和模糊匹配。8.根據(jù)權(quán)利要求1所述的方法,其中所述基于所述關(guān)鍵組成元素的特征值匹配歷史查詢語句的執(zhí)行計劃中節(jié)點的特征值包括:將所述關(guān)鍵組成元素的特征值和所述執(zhí)行計劃中節(jié)點的對應(yīng)特征值取與;響應(yīng)于取與后的結(jié)果等于所述關(guān)鍵組成元素的特征值,確定匹配到對應(yīng)所述節(jié)點的特征值。9.根據(jù)權(quán)利要求1所述的方法,其中所述基于所述節(jié)點對應(yīng)的執(zhí)行計劃,生成所述查詢語句的執(zhí)行計劃包括:將所述節(jié)點對應(yīng)的執(zhí)行計劃作為所述查詢語句的執(zhí)行計劃的至少一部分。10.根據(jù)權(quán)利要求1所述的方法,其中所述歷史查詢語句的執(zhí)行計劃是已經(jīng)優(yōu)化的執(zhí)行計劃。11.根據(jù)權(quán)利要求1所述的方法,其中所述查詢語句是結(jié)構(gòu)化查詢語句(SQL)。12.-種用于數(shù)據(jù)查詢的系統(tǒng),包括:接收裝置,被配置用于接收查詢請求,所述查詢請求包括查詢語句;計算裝置,被配置用于計算所述查詢語句中關(guān)鍵組成元素的特征值;匹配裝置,被配置用于基于所述關(guān)鍵組成元素的特征值匹配歷史查詢語句的執(zhí)行計劃中節(jié)點的特征值;執(zhí)行計劃生成裝置,被配置用于響應(yīng)于匹配到對應(yīng)所述節(jié)點的特征值,基于所述節(jié)點對應(yīng)的執(zhí)行計劃,生成所述查詢語句的執(zhí)行計劃。13.根據(jù)權(quán)利要求12所述的系統(tǒng),所述系統(tǒng)還包括以下至少之一:全局表集合序列建立裝置,被配置用于基于數(shù)據(jù)庫管理系統(tǒng)中的所有表建立全局表集合序列;全局列集合序列建立裝置,被配置用于基于所有表的對應(yīng)列建立全局列集合序列;謂詞bitmap編碼建立裝置,被配置用于對數(shù)據(jù)庫管理系統(tǒng)中的所有謂詞建立對應(yīng)的謂詞bitmap編碼。14.根據(jù)權(quán)利要求13所述的系統(tǒng),其中所述計算所述查詢語句中關(guān)鍵組成元素的特征值包括:根據(jù)所述全局表集合序列、所述全局列集合序列和所述謂詞bitmap編碼中至少之一計算所述查詢語句對應(yīng)的表bitmap特征值、列bitmap特征值和謂詞bitmap特征值中至少之一,其中所述關(guān)鍵組成元素包括以下至少之一:表、列、謂詞。15.根據(jù)權(quán)利要求13所述的系統(tǒng),所述系統(tǒng)還包括:bitmap屬性增加裝置,被配置用于對歷史查詢語句的執(zhí)行計劃的至少一個節(jié)點增加以下至少之一的bitmap屬性:表bitmap屬性、列bitmap屬性、謂詞bitmap屬性。16.根據(jù)權(quán)利要求4所述的系統(tǒng),所述系統(tǒng)還包括:bitmap屬性特征值計算裝置,被配置用于基于所述全局表集合序列、全局列集合序列和謂詞bitmap編碼中至少之一計算所述執(zhí)行計劃的至少一個節(jié)點的對應(yīng)的表bitmap屬性特征值、列bitmap屬性特征值、謂詞bitmap屬性特征值中的至少之一。17.根據(jù)權(quán)利要求16所述的系統(tǒng),其中所述bitmap屬性特征值計算裝置還包括:用于根據(jù)所述至少一個節(jié)點和該節(jié)點對應(yīng)的子節(jié)點和葉子節(jié)點中所用到的所有表、所有列和所有謂詞中至少之一,結(jié)合所述全局表集合序列、全局列集合序列和謂詞bitmap編碼中對應(yīng)的至少之一計算所述執(zhí)行計劃的至少一個節(jié)點的表bitmap屬性特征值、列bitmap屬性特征值、謂詞bitmap屬性特征值的裝置。18.根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述基于所述關(guān)鍵組成元素的特征值匹配歷史查詢語句的執(zhí)行計劃中節(jié)點的特征值包括以下至少之一:精確匹配、子集匹配、超集匹配和模糊匹配。19.根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述匹配裝置包括:取與裝置,被配置用于將所述關(guān)鍵組成元素的特征值和所述執(zhí)行計劃中節(jié)點的對應(yīng)特征值取與;確定匹配裝置,被配置用于響應(yīng)于取與后的結(jié)果等于所述關(guān)鍵組成元素的特征值,確定匹配到對應(yīng)所述節(jié)點的特征值。20.根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述執(zhí)行計劃生成裝置包括:用于將所述節(jié)點對應(yīng)的執(zhí)行計劃作為所述查詢語句的執(zhí)行計劃的至少一部分的裝置。21.根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述歷史查詢語句的執(zhí)行計劃是已經(jīng)優(yōu)化的執(zhí)行計劃。22.根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述查詢語句是結(jié)構(gòu)化查詢語句。【文檔編號】G06F17/30GK104216894SQ201310211748【公開日】2014年12月17日申請日期:2013年5月31日優(yōu)先權(quán)日:2013年5月31日【發(fā)明者】王晨,周瓚,張廣舟,劉晶晶,邱雷,徐福飛,趙勝申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1