国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于優(yōu)化數(shù)據(jù)庫查詢的方法和系統(tǒng)的制作方法

      文檔序號:6438389閱讀:275來源:國知局

      專利名稱::用于優(yōu)化數(shù)據(jù)庫查詢的方法和系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      :本發(fā)明涉及查詢優(yōu)化,更特別地,涉及使用查詢優(yōu)化從數(shù)據(jù)倉庫檢索數(shù)據(jù)的子集。
      背景技術(shù)
      :數(shù)據(jù)倉庫,特別是數(shù)據(jù)庫,是計算化的信息存儲和檢索系統(tǒng)。數(shù)據(jù)庫查詢指的是用于檢索存儲于數(shù)據(jù)庫中的數(shù)據(jù)的一組命令或語句。查詢可來自用戶、應(yīng)用程序或遠(yuǎn)程系統(tǒng)。查詢可規(guī)定從中檢索數(shù)據(jù)的數(shù)據(jù)庫中的諸如表或欄的特定位置、如何結(jié)合來自多個表的欄和特定的數(shù)據(jù)記錄包含于查詢結(jié)果組中必須滿足的條件。一般為關(guān)系數(shù)據(jù)庫的當(dāng)前的結(jié)構(gòu)化數(shù)據(jù)處理以由查詢語言規(guī)定的精確格式構(gòu)成的查詢。例如,許多關(guān)系數(shù)據(jù)庫支持廣泛使用的結(jié)構(gòu)化查詢語言(StructuredQueryLanguage(SQL))。許多諸如生命科學(xué)的依賴于數(shù)據(jù)庫的學(xué)科需要越來越復(fù)雜的數(shù)據(jù)庫和數(shù)據(jù)庫查詢。運行大的或復(fù)雜的查詢一般使用多個資源并且已成為研究和關(guān)注的主題。
      發(fā)明內(nèi)容本發(fā)明的實施例是針對用于優(yōu)化數(shù)據(jù)庫事務(wù)的方法、系統(tǒng)和計算機程序產(chǎn)品。因此,本發(fā)明的實施例接收查詢。所述查詢規(guī)定一組謂詞,在該組謂詞中,該查詢?yōu)檎?tobetrue)必須滿足的最少數(shù)量。使用對存儲于計算機可讀存儲介質(zhì)中的倉庫的查詢來執(zhí)行操作。呈現(xiàn)滿足所述最少數(shù)量的謂詞的一組結(jié)果。針對包含計算機可讀存儲介質(zhì)的計算機程序產(chǎn)品的實施例包含用于優(yōu)化數(shù)據(jù)庫事務(wù)的計算機可用代碼。實施例包含用于接收查詢的計算機可用代碼。該查詢規(guī)定提供給該查詢的一組謂詞和查詢?yōu)檎嬉獫M足的該組謂詞中的謂詞的最少數(shù)量。實施例還包括用于使用所述查詢對存儲于計算機可讀存儲介質(zhì)中的倉庫執(zhí)行操作的計算機可用代碼。實施例還包括用于呈現(xiàn)滿足所述最少數(shù)量的謂詞的一組結(jié)果的計算機可用代碼。針對用于優(yōu)化數(shù)據(jù)庫事務(wù)的數(shù)據(jù)處理系統(tǒng)的實施例包括包含存儲介質(zhì)的存儲裝置,其中,存儲裝置存儲計算機可用程序代碼、處理器,其中,處理器執(zhí)行所述計算機可用程序代碼。實施例的計算機可用程序代碼包含用于接收查詢的計算機可用代碼,其中,該查詢規(guī)定提供給該查詢的一組謂詞和查詢?yōu)檎嬉獫M足的該組謂詞中的謂詞的最少數(shù)量;用于使用該查詢對存儲于計算機可讀存儲介質(zhì)中的倉庫執(zhí)行操作的計算機可用代碼;和用于呈現(xiàn)滿足所述最少數(shù)量的謂詞的一組結(jié)果的計算機可用代碼。以下,參照下面的示意圖僅以例子的方式來描述本發(fā)明的實施例,其中圖1示出從數(shù)據(jù)倉庫檢索數(shù)據(jù)的子集的方法的流程圖的示例性實施例;圖2示出用于從關(guān)系數(shù)據(jù)庫檢索數(shù)據(jù)的子集的流程圖的示例性實施例;和圖3表示用于從數(shù)據(jù)倉庫檢索數(shù)據(jù)的子集的計算機系統(tǒng)的示意圖的示例性實施例。具體實施例方式以下,參照根據(jù)本發(fā)明的實施例的方法、設(shè)備(系統(tǒng))和計算機程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明的各方面??梢岳斫猓赏ㄟ^計算機程序指令實現(xiàn)流程圖和/或框圖的每一個框以及流程圖和/或框圖的框的組合。這些計算機程序指令可被提供給通用計算機、專用計算機或其它的可編程數(shù)據(jù)處理設(shè)備的處理器,以制造機器,使得通過計算機的處理器或其它的可編程數(shù)據(jù)處理設(shè)備執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖和/或框圖(一個或多個框)中規(guī)定的功能/動作的裝置。本發(fā)明的實施例是針對用于優(yōu)化用于從數(shù)據(jù)倉庫檢索數(shù)據(jù)的子集的數(shù)據(jù)庫查詢的方法、系統(tǒng)和計算機程序產(chǎn)品。圖1表示用于從數(shù)據(jù)倉庫檢索數(shù)據(jù)的子集的流程圖100的示例性實施例。步驟Iio表示接收查詢。一旦接收到查詢,接著,在步驟120中,分析查詢以從查詢確定查詢中的謂詞的總數(shù)和執(zhí)行操作所需要的謂詞的最少數(shù)量。當(dāng)這些被確定完時,在步驟130中,識別使該查詢運行所針對的數(shù)據(jù)源。在步驟140中,對數(shù)據(jù)源執(zhí)行查詢。在步驟150中,基于對數(shù)據(jù)源運行的查詢,檢索滿足查詢的數(shù)據(jù)子集并將其呈現(xiàn)給用戶。接收查詢包含接收一組謂詞和表示該組謂詞中需要為真的謂詞的最少數(shù)量的預(yù)定的閾值。在一個實施例中,有利地,該組謂詞中的各謂詞優(yōu)選表示為逐位謂詞模式以生成一組逐位謂詞模式。如果需要,通過以在這里作為參考并入的相關(guān)申請中描述的實施例的方式使用該組逐位謂詞模式和多個邏輯運算符生成第二查詢。所述多個邏輯運算符包含布爾運算符。根據(jù)實施例的生成第二查詢的步驟使用謂詞的預(yù)定的閾值。使用查詢從數(shù)據(jù)倉庫檢索數(shù)據(jù)的子集。生成第二查詢還包含使用第一查詢從該組逐位謂詞模式識別一組有效的逐位模式并且使用所述多個邏輯運算符分析該組有效的逐位模式以生成邏輯逐位表達(dá)式;并且接著將邏輯逐位表達(dá)式因式分解。分析和因式分解優(yōu)選使用布爾特性。然后,產(chǎn)生因式分解后的邏輯逐位表達(dá)式到該組謂詞中的相應(yīng)的謂詞的映射,以生成邏輯謂詞表達(dá)式。通過使用邏輯謂詞表達(dá)式修改第一查詢來生成第二查詢。在一個實施例中,諸如在關(guān)系數(shù)據(jù)庫或面向?qū)ο蟮臄?shù)據(jù)庫中,數(shù)據(jù)倉庫是結(jié)構(gòu)化數(shù)據(jù),并且,第一查詢和第二查詢均是結(jié)構(gòu)化查詢語言(SQL)查詢。優(yōu)選地,根據(jù)實施例的查詢包含“ATLEAST”語句和表示在該組謂詞中的那些需要為真的謂詞的最少數(shù)量的謂詞的預(yù)定的閾值。在示例性模式中,以下給出從數(shù)據(jù)倉庫檢索數(shù)據(jù)的子集的示例。數(shù)據(jù)庫查詢優(yōu)化器嘗試減少謂詞的數(shù)量以優(yōu)化查詢性能。但是,有時SQL查詢具有通過OR條件結(jié)合的大量的謂詞,這使得減少謂詞的數(shù)量變得困難。以下描述業(yè)務(wù)決定基于滿足一組最少的先決條件的示例性實施例對于年度獎金分配,設(shè)定準(zhǔn)則使得滿足5個條件(即謂詞)中的至少3個的雇員有資格領(lǐng)取獎金。示例性謂詞如下1.1或2+的表現(xiàn)等級(felting)2.管理者推薦(Manager_Recom)3.業(yè)務(wù)單位利潤>3%(BU_profit)4.工資低于其級別的平均工資5.在組織中被雇用多于兩年(Current_dt_Join_dt)假定雇員數(shù)據(jù)被存儲于數(shù)據(jù)庫中,則需要寫入查詢以得到滿足先決條件的雇員記錄。這是存儲于數(shù)據(jù)庫中的數(shù)據(jù)的子集。一般地,使用SQL中的“AND”和“OR”語句的典型的組合書寫從匹配于5個條件中的至少3個的表選擇行的查詢。假定所有的數(shù)據(jù)在雇員表中是可得到的,那么典型的查詢可以如下select*fromemployeewhere((Ratingin(1,2+))and(Manager_Recom二’V)and(BU—profit>3))OR((Ratingin(1,2+))and(Manager_Recom=‘X丨)and(Salary<(selectAvg(Salary)fromemployee)))OR((Ratingin(1,2+))and(Manager_Recom='V)and(Current_dt-Join_Dt>2years))OR((Ratingin(1,2+))and(BU_profit>3)and(Salary<(selectAvg(Salary)fromemployee)))OR((Ratingin(1,2+))and(BU_profit>3)and(Current_dt-Join_Dt>2years))OR((Ratingin(1,2+))and(Salary<(selectAvg(Salary)fromemployee))and(Current—dt-Join—Dt>2years))OR((Manager_Recom='Y')and(BU—profit>3)and(Salary<(selectAvg(Salary)fromemployee)))OR((Manager_Recom='Y')and(BU_profit>3)and(Current_dt-Join_Dt>2years))OR((Manager_Recom=fYf)and(Salary<(selectAvg(Sslary)fromemployee))and(Current_dt-Join_Dt>2years))OR((BU_profit>3)and(Salary<(selectAvg(Salary)fromemployee))and(Current_dt-Join_Dt>2years))從以上的查詢可以注意到,查詢包含大量的OR語句和許多的謂詞,并且,在常規(guī)的SQL中,沒有簡易的方式來書寫這種查詢和減少這種查詢中的謂詞的數(shù)量。這種查詢書寫和處理是耗時的,并且使用大量的計算資源來執(zhí)行。本發(fā)明的實施例在優(yōu)化器的內(nèi)部使用針對謂詞的位表示,并且有助于減少SQL中的謂詞的數(shù)量。壓縮謂詞有助于減少執(zhí)行查詢的處理循環(huán),由此提高查詢性能。示例性實施例使用很好研究的布爾特性聯(lián)合特性(a|b)C=aI(b|c)(a&b)&c=a&(b&c)分布特性:aI(b&c)=(a|b)&(a|c)a&(b|c)=(a&b)|(a&c)應(yīng)當(dāng)注意,邏輯“AND”被表達(dá)為“&”或“*”,并且,邏輯“OR”表達(dá)為“|”或“+”。2個表達(dá)式之間沒有任何運算符被假定為“AND”,例如,01(0+1)等同于0&說(0|1),即,0*1女(0+1)。在實施例中,關(guān)于以上的例子并且關(guān)于如何形成逐位謂詞模式,應(yīng)理解以下的方面各邏輯謂詞由一組位表示。這里,這樣的一組位被稱為“逐位謂詞模式”。各組可具有相同數(shù)量的位。各逐位謂詞模式僅具有一個位0Ν。各逐位謂詞模式唯一地表示邏輯謂詞中的單個相應(yīng)的邏輯謂詞。對于各逐位謂詞模式,為ON的一個位表明特定的逐位謂詞模式表示邏輯謂詞中的哪一個。作為使用很好研究的布爾代數(shù)的例子,使A、B、C、D和E表示5個邏輯表達(dá)式/謂詞。一次取3的排列將導(dǎo)致5P3=10種可能的排列。A,B,C;A,B,D;Α,B,E;A,C,D;A,C,E;A,D,E;B,C,D;B,C,E;B,D,E;C,D,E使用邏輯“AND”和“OR”運算符在表達(dá)式中表示所有的排列(C&D&E)I(B&D&E)|(B&C&E)|(B&C&D)(A&D&E)I(A&C&E)|(A&C&D)(A&B&C)I(A&B&D)|(A&B&E)這里,“&”表示邏輯“AND”運算符,并且,“I”表示邏輯“OR”運算符。使用布爾代數(shù)的分布特性,表達(dá)式可被表示為(C&D&E)I(B&(D&E|C&E|C&D))(A&(D&E|C&E|C&D))(A&B&(C|D|E))可進(jìn)一步應(yīng)用分布特性將表達(dá)式表示為(C&D&E)I(BIA)&(D&E|C&E|C&D))|(A&B&(C|D|E))該表達(dá)式是可使用在這里作為參考并入的相關(guān)公開中描述的位表示獲得的期望的結(jié)果。本發(fā)明的示例性實施例擴展當(dāng)前的SQL以對于這種查詢支持新的語句"ATLEAST"oATLEAST語句的句式可以如下ATLEAST(N,predicate1,predicate2,predicate3,.....predicateK)這里,K是謂詞的總數(shù),并且,N是要滿足的謂詞的最少數(shù)量。與具有大量OR語句的查詢相比,以上表示的這種查詢還使得書寫查詢更加簡單并且更加可讀。在示例性模式中,可以修改數(shù)據(jù)庫優(yōu)化器,以支持SQL句式中的‘‘ATLEAST”語句。以上的一組謂詞的第一查詢可被書寫如下select*fromemployeewhereATLEAST(3,Ratingin(l,2+),Manager_Recom='Y',BU—profit>3,Salary<(selectAvg(Salary)fromemployee),Current—dt-Join—Dt>2years)重要的是,這里注意到,具有多個‘‘OR”語句的查詢與具有“ATLEAST”語句的第一查詢具有相同的效果;但是,“0R”語句已在數(shù)據(jù)庫技術(shù)中得到支持,而“ATLEAST”是本發(fā)明的一個實施例。根據(jù)本發(fā)明的一個實施例,數(shù)據(jù)庫優(yōu)化器將改寫第一查詢并且優(yōu)化查詢以生成第二查詢?nèi)缦聅elect*fromemployeewhere(BU_profit>3andSalary<(selectAvg(Salary)fromemployee)andCurrent—dt-Join—Dt>2years)OR((Ratingin(1,2+)orManager—Recom=’X')AND((Salary<(selectAvg(Salary)fromemployee)andCurrent—dt_Join—Dt>2years)Or(BU_profit>3andCurrent_dt-Join_Dt>2years)Or(BU—profit>3andSalary<(selectAvg(Salary)fromemployee))))OR(Ratingin(1,2+)andManager—Recom='Yfand(BU_profit>3orSalary<(selectAvg(Salary)fromemployee)orCurrent_dt-Join_Dt>2years))以下的例子給出以位格式表示多個謂詞的實施例的更詳細(xì)的解釋。查詢被接收,并且,示例性第一查詢?nèi)缦聅elect*fromtablewhereATLEAST(3,a=10,b=20,c=30,d=30,e=50)在另一示例性實施例中,如果僅在SQL查詢中存在2個謂詞A和B,其中的一個對于SQL檢索有效的子集需要為真,那么常規(guī)的SQL查詢將為select*fromTablelwhereAORB。根據(jù)示例性“ATLEAST”表示的該常規(guī)的SQL查詢可被改寫為select*fromTablelwhereATLEAST(1,A,B)當(dāng)謂詞的數(shù)量大時,本發(fā)明的實施例將產(chǎn)生更好的表現(xiàn)。圖2表示用于從關(guān)系數(shù)據(jù)庫檢索數(shù)據(jù)的子集的總體方法的流程圖200的示例性實施例。應(yīng)當(dāng)注意,除了圖2屬于作為關(guān)系數(shù)據(jù)庫的數(shù)據(jù)倉庫以外,流程圖200與圖1的流程圖100類似。在步驟210中,查詢被明確地示為ATLEAST(N、Pl、P2...HO,這里,K是謂詞的總數(shù),并且,N是要滿足的謂詞的最少數(shù)量。在步驟220中,檢查是否查詢符合已設(shè)計的新格式并且如果格式為0K,那么對相關(guān)的倉庫230運行查詢并且在步驟MO中輸出結(jié)果。圖3是可用于實現(xiàn)本發(fā)明的各種實施例的示例性計算機系統(tǒng)300的框圖。在一些實施例中,計算機系統(tǒng)300可被用于執(zhí)行在圖1或圖2或兩個圖中描述的步驟。計算機系統(tǒng)300包含處理器303。應(yīng)當(dāng)理解,雖然圖3示出單個處理器,但是本領(lǐng)域技術(shù)人員將會理解,可以根據(jù)需要包含多于一個的處理器。處理器303與通信基礎(chǔ)結(jié)構(gòu)302(例如,通信總線、跨接桿(cross-overbar)或網(wǎng)絡(luò))連接,這里通信基礎(chǔ)結(jié)構(gòu)303被配置為便于示例性計算機系統(tǒng)300的各種元件之間的通信。關(guān)于本示例性計算機系統(tǒng)描述各種軟件實施例。在讀完本說明書之后,本領(lǐng)域普通技術(shù)人員顯然會理解如何使用其它的計算機系統(tǒng)和/或計算機結(jié)構(gòu)實現(xiàn)本發(fā)明。示例性計算機系統(tǒng)300可包含被配置為從通信基礎(chǔ)結(jié)構(gòu)302(或從未示出的幀緩沖器)轉(zhuǎn)發(fā)用于在顯示單元310上顯示的圖形、文本和其它數(shù)據(jù)的顯示接口308。計算機系統(tǒng)300還包含可以為隨機存取存儲器(RAM)的主存儲器306,并且還可包含次存儲器312。次存儲器312可包含例如硬盤驅(qū)動器314和/或表示軟盤驅(qū)動器、磁帶驅(qū)動器、光盤驅(qū)動器等的可移動存儲驅(qū)動器316??梢苿哟鎯︱?qū)動器316以本領(lǐng)域普通技術(shù)人員公知的方式從可移動存儲單元318讀取和/或向可移動存儲單元318寫入。可移動存儲單元318表示例如由可移動存儲驅(qū)動器316讀取和寫入的軟盤、磁帶、光盤等。可以理解,可移動存儲單元318包含在其中存儲計算機軟件和/或數(shù)據(jù)的計算機可用存儲介質(zhì)。在示例性實施例中,次存儲器312可包含用于允許將計算機程序或其它的指令加載到計算機系統(tǒng)中的其它類似的裝置。這種裝置可包含例如可移動存儲單元322和接口320。它們的例子可包含程序盒子和盒子接口(諸如在視頻游戲裝置中所找到的)、可移動的存儲芯片(諸如EPROM或PR0M)及其相關(guān)的插口,以及其它可移動存儲單元322和允許從可移動存儲單元322向計算機系統(tǒng)300傳送軟件和數(shù)據(jù)的接口320。計算機系統(tǒng)300還可包含通信接口324。通信接口3M允許在計算機系統(tǒng)和外部裝置之間傳送軟件和數(shù)據(jù)。通信接口3M的例子可包含調(diào)制解調(diào)器、網(wǎng)絡(luò)接口(諸如以太網(wǎng)卡)、通信端口、PCMCIA插槽和卡等。并且,本發(fā)明的各方面可采取在其上體現(xiàn)(實施)有計算機可讀程序代碼的一個或更多個計算機可讀介質(zhì)中體現(xiàn)的計算機程序產(chǎn)品的形式。圖中的流程圖和框圖示出根據(jù)本發(fā)明的各種實施例的系統(tǒng)、方法和計算機程序產(chǎn)品的可能的實現(xiàn)的基礎(chǔ)結(jié)構(gòu)、功能和操作。在這一點上,流程圖或框圖中的各塊(框)可表示包含用于實現(xiàn)規(guī)定的邏輯功能的一個或更多個可執(zhí)行指令的模塊、段或代碼的一部分。還應(yīng)注意,在一些替代性實現(xiàn)方式中,在塊中注明的功能可以以圖示中標(biāo)明的次序以外的次序發(fā)生。例如,根據(jù)所包含的功能,依次表示的兩個塊可能實際基本上被同時實現(xiàn),或者,塊有時可以以相反的次序執(zhí)行。還應(yīng)注意,可通過執(zhí)行特定的功能或動作的專用的基于硬件的系統(tǒng)或?qū)S糜布陀嬎銠C指令的組合來實現(xiàn)框圖和/或流程圖的各塊以及框圖和/或流程圖中的塊的組合。如本領(lǐng)域技術(shù)人員可以理解的,本發(fā)明的多個方面可體現(xiàn)為系統(tǒng)、方法或計算機程序產(chǎn)品。因此,本發(fā)明的多個方面可采取完全硬件實施例、完全軟件實施例(包含固件、常駐軟件、微代碼等)或組合軟件和這里均可統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”的硬件的實施例的形式。并且,本發(fā)明的多個方面可采取在其上體現(xiàn)有計算機可讀程序代碼的一個或更多個計算機可讀介質(zhì)中體現(xiàn)的計算機程序產(chǎn)品的形式。這些計算機程序指令還可存儲在計算機可讀介質(zhì)中,這些計算機程序指令可引導(dǎo)計算機、其它可編程數(shù)據(jù)處理設(shè)備或其它的裝置以特定的方式起作用,使得存儲于計算機可讀介質(zhì)中的指令產(chǎn)生包含實現(xiàn)在流程圖和/或框圖(一個或多個框)中規(guī)定的功能/動作的指令的制造物品。計算機程序指令還可被加載到計算機、其它可編程數(shù)據(jù)處理設(shè)備或其它裝置上,以導(dǎo)致在計算機、其它可編程設(shè)備或其它裝置上執(zhí)行一系列的操作步驟,以產(chǎn)生計算機實現(xiàn)的過程,使得在計算機或其它的可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖和/或框圖(一個或多個框)中規(guī)定的功能/動作的過程。可以利用一個或更多個計算機可讀介質(zhì)的任意組合。計算機可讀介質(zhì)可以是計算機可讀信號介質(zhì)或計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)可以為例如但不限于電子、磁、光、電磁、紅外或半導(dǎo)體系統(tǒng)、設(shè)備或裝置或以上的任意適當(dāng)?shù)慕M合。計算機可讀存儲介質(zhì)的更特定的例子(非詳盡的列表)包含以下的方面具有一個或更多個導(dǎo)線的電氣連接部、便攜式計算機盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦除可編程只讀存儲器(EPR0M或閃存存儲器)、光纖、便攜式光盤只讀存儲器(CD-ROM)、光存儲裝置、磁存儲裝置或以上的任意適當(dāng)?shù)慕M合。在本文件的上下文中,計算機可讀存儲介質(zhì)可以為可包含或存儲由指令執(zhí)行系統(tǒng)、設(shè)備或裝置使用或與其結(jié)合使用的程序的任何可觸知介質(zhì)。計算機可讀信號介質(zhì)可包含具有在其中例如以基帶或載波的一部分體現(xiàn)的計算機可讀程序代碼的傳播的數(shù)據(jù)信號。這種傳播的信號可采取各種形式中的任意一種,包括但不限于電磁、光或它們的任意的組合。這些傳播的信號通過通信路徑(即,信道)3提供給通信接口323。計算機可讀信號介質(zhì)可以是任何計算機可讀介質(zhì),其不是計算機可讀存儲介質(zhì)但可通信、傳播或傳送由指令執(zhí)行系統(tǒng)、設(shè)備或裝置使用或與其結(jié)合使用的程序??墒褂冒幌抻跓o線、有線、光纖電纜、RF等或以上的任意適當(dāng)?shù)慕M合的任何適當(dāng)?shù)慕橘|(zhì)傳送在計算機可讀介質(zhì)上體現(xiàn)的程序代碼。可以一個或更多個編程語言的任意組合書寫用于實施本發(fā)明的各方面的操作的計算機程序代碼,該語言包括諸如JaviSmalltalk或C++等的面向?qū)ο蟮木幊陶Z言和諸如“C”編程語言或類似的編程語言的常規(guī)的程序編輯語言。程序代碼可如下執(zhí)行作為獨立的軟件封裝,完全地在用戶的計算機上、部分地在用戶的計算機上、部分地在用戶的計算機上并且部分地在遠(yuǎn)程計算機上或者完全在遠(yuǎn)程計算機或服務(wù)器上執(zhí)行。在后一種情形中,遠(yuǎn)程計算機可通過包含局域網(wǎng)絡(luò)(LAN)或廣域網(wǎng)絡(luò)(WAN)的任意類型的網(wǎng)絡(luò)與用戶的計算機連接,或者,可與外部計算機進(jìn)行連接(例如,通過使用因特網(wǎng)服務(wù)提供商的因特網(wǎng))。本發(fā)明的各種實施例的優(yōu)點包含開發(fā)檢索數(shù)據(jù)倉庫的查詢的簡化。其它的實施例中的一些的其它的優(yōu)點包含開發(fā)不易出錯的查詢。本發(fā)明的一些實施例的一些其它的優(yōu)點包含諸如但不限于中央處理單元(CPU)的計算資源的最佳使用。雖然本發(fā)明解釋了本發(fā)明的一些特定實施例的各種優(yōu)點,但是本領(lǐng)域技術(shù)人員根據(jù)本發(fā)明的教導(dǎo)可以理解,本發(fā)明的優(yōu)點不限于以上提到的優(yōu)點。這里使用的術(shù)語僅出于描述特定實施例的目的并不意于限制本發(fā)明。如這里所使用的,除非本文另外明確規(guī)定,否則單數(shù)形式“一個”、“一種”和“該”意于包含復(fù)數(shù)形式。還應(yīng)理解,在本說明書中使用的術(shù)語“包含”和/或“包括”規(guī)定陳述的特征、整數(shù)、步驟、操作、元件和/或部件的存在,但不排除一個或更多個其它的特征、整數(shù)、步驟、操作、元件、部件和/或它們的組的存在或添加。雖然已詳細(xì)地描述了本發(fā)明的示例性實施例,但應(yīng)理解,在不背離由所附的權(quán)利要求限定的本發(fā)明的精神和范圍的情況下,可以對其進(jìn)行各種變化、替代和改變??梢砸愿魈囟☉?yīng)用期望的任何組合實現(xiàn)對于本發(fā)明的示例性實施例描述的變化。因此,這里描述的對于特定的應(yīng)用具有特定的優(yōu)點的特定的限制和/或?qū)嵤├倪M(jìn)不需要被用于所有的應(yīng)用。并且,不需要在包含關(guān)于本發(fā)明的示例性實施例描述的一個或更多個概念的方法、系統(tǒng)和/或設(shè)備中實現(xiàn)所有的限制。這里使用的術(shù)語僅出于描述特定實施例的目的,并不意于限制本發(fā)明。如這里所使用的,除非本文另外明確規(guī)定,單數(shù)形式“一個”、“一種”和“該”意于包含復(fù)數(shù)形式。還應(yīng)理解,在本說明書中使用的術(shù)語“包含”和/或“包括”規(guī)定陳述的特征、整數(shù)、步驟、操作、元件和/或部件的存在,但不排除一個或更多個其它的特征、整數(shù)、步驟、操作、元件、部件和/或它們的組的存在或添加。權(quán)利要求1.一種用于優(yōu)化數(shù)據(jù)庫事務(wù)的計算機實現(xiàn)的方法,包括接收查詢,該查詢規(guī)定(i)提供給該查詢的一組謂詞和(ii)該查詢?yōu)檎嬉獫M足的該組謂詞中的謂詞的最少數(shù)量;使用所述查詢對存儲于計算機可讀存儲介質(zhì)中的倉庫來執(zhí)行操作;以及呈現(xiàn)滿足最少數(shù)量的謂詞的一組結(jié)果。2.如利要求1所述的計算機實現(xiàn)的方法,其中,該查詢被構(gòu)造為ATLEAST(N、PUP2、P3、...H(),其中,Pl1是被提供給該查詢的該組謂詞,并且,N是該查詢?yōu)檎嬉獫M足的謂詞的所述最少數(shù)量。3.如利要求2所述的計算機實現(xiàn)的方法,其中,所述一組謂詞中的謂詞PlHi各自表示為逐位謂詞模式,以形成一組逐位謂詞模式,并且,通過使用該組逐位謂詞模式生成邏輯表達(dá)式來優(yōu)化該查詢。4.如利要求1所述的計算機實現(xiàn)的方法,其中,所述謂詞的最少數(shù)量是使該查詢運行的預(yù)定的閾值。5.如利要求1所述的計算機實現(xiàn)的方法,其中,該倉庫包含結(jié)構(gòu)化數(shù)據(jù)。6.如利要求1所述的計算機實現(xiàn)的方法,其中,該查詢采取結(jié)構(gòu)化查詢語言(SQL)的形式。7.一種用于優(yōu)化數(shù)據(jù)庫事務(wù)的數(shù)據(jù)處理系統(tǒng),所述數(shù)據(jù)處理系統(tǒng)包括包含存儲介質(zhì)的存儲裝置,其中,所述存儲裝置存儲計算機可用程序代碼;和處理器,其中所述處理器執(zhí)行所述計算機可用程序代碼,并且,所述計算機可用程序代碼包括用于接收查詢的計算機可用代碼,該查詢規(guī)定(i)提供給該查詢的一組謂詞和(ii)該查詢?yōu)檎嬉獫M足的該組謂詞中的謂詞的最少數(shù)量;用于使用所述查詢對存儲于計算機可讀存儲介質(zhì)中的倉庫執(zhí)行操作的計算機可用代碼;以及用于呈現(xiàn)滿足所述最少數(shù)量的謂詞的一組結(jié)果的計算機可用代碼。8.如權(quán)利要求7所述的數(shù)據(jù)處理系統(tǒng),其中,該查詢被構(gòu)造為ATLEAST(N、PI、P2、P3、...1),其中,Pl1是被提供給該查詢的一組謂詞,并且,N是查詢?yōu)檎嬉獫M足的所述謂詞的所述最少數(shù)量。9.如權(quán)利要求7所述的數(shù)據(jù)處理系統(tǒng),其中,所述一組謂詞中的謂詞PlHi各自表示為逐位謂詞模式,以形成一組逐位謂詞模式,并且,通過使用該組逐位謂詞模式生成邏輯表達(dá)式來優(yōu)化該查詢。10.如權(quán)利要求7所述的數(shù)據(jù)處理系統(tǒng),其中,所述謂詞的最少數(shù)量是使該查詢運行的預(yù)定的閾值。11.如權(quán)利要求7所述的數(shù)據(jù)處理系統(tǒng),其中,該倉庫包含結(jié)構(gòu)化數(shù)據(jù)。12.如權(quán)利要求7所述的數(shù)據(jù)處理系統(tǒng),其中,該查詢采取結(jié)構(gòu)化查詢語言(SQL)的形式。全文摘要本發(fā)明涉及用于優(yōu)化數(shù)據(jù)庫查詢的方法和系統(tǒng)。本發(fā)明的實施例涉及用于優(yōu)化被配置為用于接收查詢的數(shù)據(jù)庫事務(wù)的方法、計算機程序產(chǎn)品和系統(tǒng)。查詢規(guī)定提供給查詢的一組謂詞和查詢?yōu)檎嬉獫M足的謂詞的最少數(shù)量。使用查詢對存儲于計算機可讀存儲介質(zhì)中的倉庫執(zhí)行操作。呈現(xiàn)滿足最少數(shù)量的謂詞的一組結(jié)果。文檔編號G06F17/30GK102479255SQ201110361039公開日2012年5月30日申請日期2011年11月15日優(yōu)先權(quán)日2010年11月19日發(fā)明者S·辛格,V·M·庫爾卡尼申請人:國際商業(yè)機器公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1