国产精品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>

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

      文檔序號(hào):6433055閱讀:959來(lái)源:國(guó)知局
      專利名稱:數(shù)據(jù)庫(kù)查詢的方法和系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明一般涉及數(shù)據(jù)庫(kù)管理系統(tǒng),更具體地,涉及一種數(shù)據(jù)庫(kù)查詢的方法和系統(tǒng)。
      背景技術(shù)
      數(shù)據(jù)庫(kù)(Database)是按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù)。關(guān)系數(shù)據(jù)庫(kù)是目前常用的數(shù)據(jù)庫(kù)類型,對(duì)關(guān)系型數(shù)據(jù)庫(kù)中的數(shù)據(jù),目前使用結(jié)構(gòu)化查詢語(yǔ)言(SQL)進(jìn)行查詢。SQL語(yǔ)言的功能包括查詢、操縱、定義和控制,是一個(gè)綜合的、通用的關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言,同時(shí)又是一種高度非過(guò)程化的語(yǔ)言,只要求用戶指出做什么而不需要指出怎么做。SQL集成實(shí)現(xiàn)了數(shù)據(jù)庫(kù)生命周期中的全部操作。SQL提供了與關(guān)系數(shù)據(jù)庫(kù)進(jìn)行交互的方法,它可以與標(biāo)準(zhǔn)的編程語(yǔ)言一起工作。 數(shù)據(jù)庫(kù)管理系統(tǒng)(database management system)是一種操縱和管理數(shù)據(jù)庫(kù)的大型軟件,用于建立、使用和維護(hù)數(shù)據(jù)庫(kù),簡(jiǎn)稱DBMS。它對(duì)數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)一的管理和控制,以保證數(shù)據(jù)庫(kù)的安全性和完整性。現(xiàn)有的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)包括IBM的DB2、Oracle、Informix、Sybase、SQL Server 等。數(shù)據(jù)庫(kù)管理系統(tǒng)的查詢引擎(Query ExecutionRuntime)都支持SQL語(yǔ)言的查詢功能。用戶或者應(yīng)用程序可以使用SQL語(yǔ)言,通過(guò)數(shù)據(jù)庫(kù)管理系統(tǒng)的查詢引擎對(duì)其管理的數(shù)據(jù)庫(kù)進(jìn)行查詢。查詢的結(jié)果一般包含多個(gè)記錄,一般稱返回第一條滿足查詢條件數(shù)據(jù)的時(shí)間為查詢響應(yīng)時(shí)間(response time),而返回所有滿足查詢條件的數(shù)據(jù)結(jié)果集的時(shí)間稱為查詢總時(shí)間(total time)。目前的數(shù)據(jù)庫(kù)管理系統(tǒng)接收到查詢請(qǐng)求時(shí),會(huì)默認(rèn)盡可能使用最小查詢總時(shí)間運(yùn)行查詢,數(shù)據(jù)庫(kù)管理系統(tǒng)會(huì)產(chǎn)生一個(gè)查詢?cè)L問(wèn)計(jì)劃,該計(jì)劃能夠以最有效的方式返回給用戶或者發(fā)出查詢的應(yīng)用程序完整的查詢結(jié)果。有時(shí),發(fā)出查詢的應(yīng)用程序或用戶傾向于盡快得到開(kāi)始的幾個(gè)查詢結(jié)果,而不關(guān)注完成整個(gè)查詢所經(jīng)過(guò)的時(shí)間,這種應(yīng)用可以使用語(yǔ)句“OPTIMIZED FOR FIRST N ROW”來(lái)通知數(shù)據(jù)庫(kù)管理系統(tǒng)的查詢引擎優(yōu)化器以最小查詢響應(yīng)時(shí)間而不是最小查詢總時(shí)間來(lái)執(zhí)行查詢。然而,許多應(yīng)用需要同時(shí)以最小查詢響應(yīng)時(shí)間和最小查詢總時(shí)間來(lái)執(zhí)行查詢。當(dāng)一個(gè)發(fā)出查詢的應(yīng)用發(fā)出查詢請(qǐng)求,它需要盡快從數(shù)據(jù)庫(kù)中得到響應(yīng),然后得到初始的幾個(gè)查詢結(jié)果,以便可以判斷是否進(jìn)行后續(xù)的查詢或者其它商業(yè)邏輯。當(dāng)前的數(shù)據(jù)庫(kù)管理系統(tǒng)只能或者提供以最小查詢響應(yīng)時(shí)間的查詢計(jì)劃,或者提供以最小查詢總時(shí)間的查詢計(jì)劃,這些查詢計(jì)劃都沒(méi)有辦法能同時(shí)減少查詢響應(yīng)時(shí)間和查詢總時(shí)間。

      發(fā)明內(nèi)容
      因此,需要一種新的數(shù)據(jù)庫(kù)查詢方法,該方法使得用戶或應(yīng)用程序在查詢數(shù)據(jù)庫(kù)時(shí),能夠同時(shí)以最小查詢響應(yīng)時(shí)間和最小查詢執(zhí)行時(shí)間來(lái)執(zhí)行該查詢,從而滿足用戶或應(yīng)用程序的數(shù)據(jù)庫(kù)查詢要求。根據(jù)本發(fā)明的一個(gè)方面,提供了一種數(shù)據(jù)庫(kù)查詢的方法,包括響應(yīng)于查詢請(qǐng)求,獲得該查詢請(qǐng)求的以最小查詢響應(yīng)時(shí)間為目標(biāo)的查詢計(jì)劃以及以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃;開(kāi)始執(zhí)行以最小查詢響應(yīng)時(shí)間為目標(biāo)的查詢計(jì)劃以及以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃;在以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃 執(zhí)行到指定點(diǎn)之前,輸出以最小查詢響應(yīng)時(shí)間為目標(biāo)的查詢計(jì)劃執(zhí)行得到的初始查詢結(jié)果;響應(yīng)于以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃執(zhí)行到指定點(diǎn),繼續(xù)執(zhí)行以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃以輸出剩余查詢結(jié)果。根據(jù)本發(fā)明的另一個(gè)方面,提供了一種數(shù)據(jù)庫(kù)查詢的系統(tǒng),包括獲得裝置,被配置為響應(yīng)于查詢請(qǐng)求,獲得該查詢請(qǐng)求的以最小查詢響應(yīng)時(shí)間為目標(biāo)的查詢計(jì)劃以及以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃;執(zhí)行裝置,被配置為執(zhí)行以最小查詢響應(yīng)時(shí)間為目標(biāo)的查詢計(jì)劃以及以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃;控制裝置,被配置為檢測(cè)以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃是否執(zhí)行到指定占.輸出裝置,被配置為輸出查詢結(jié)果;其中,在所述控制裝置檢測(cè)到以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃執(zhí)行到指定點(diǎn)之前,所述輸出裝置輸出以最小查詢響應(yīng)時(shí)間為目標(biāo)的查詢計(jì)劃執(zhí)行得到的初始查詢結(jié)果;響應(yīng)于所述控制裝置檢測(cè)到以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃執(zhí)行到指定點(diǎn),所述執(zhí)行裝置繼續(xù)執(zhí)行以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃以使所述輸出裝置輸出剩余查詢結(jié)果。


      通過(guò)對(duì)附圖中本發(fā)明示例實(shí)施例方式的更詳細(xì)描述,本發(fā)明的上述、以及其它目的、特征和優(yōu)勢(shì)將變得更加明顯,其中,相同的參考標(biāo)號(hào)通常代表本發(fā)明示例實(shí)施例方式中的相同部件。圖I示出了適于用來(lái)實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性計(jì)算系統(tǒng)100的框圖;圖2示出一個(gè)示例性的查詢請(qǐng)求及其對(duì)應(yīng)的兩張表;圖3示出了哈希連接的工作方式;圖4示出了本發(fā)明提出的新的數(shù)據(jù)庫(kù)查詢方法的方法步驟;以及圖5示出了本發(fā)明提出的數(shù)據(jù)庫(kù)查詢的系統(tǒng)的結(jié)構(gòu)框圖。
      具體實(shí)施例方式將參照附圖更加詳細(xì)地描述本發(fā)明的優(yōu)選實(shí)施方式,在附圖中顯示了本發(fā)明的優(yōu)選實(shí)施例。然而,本發(fā)明可以以各種形式實(shí)現(xiàn)而不應(yīng)該理解為被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了使本發(fā)明更加透徹和完整,并且,完全將本發(fā)明的范圍傳達(dá)給本領(lǐng)域的技術(shù)人員。圖I示出了適于用來(lái)實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性計(jì)算系統(tǒng)100的框圖。如所示,計(jì)算機(jī)系統(tǒng)100可以包括CPU(中央處理單元)101、RAM(隨機(jī)存取存儲(chǔ)器)102、R0M(只讀存儲(chǔ)器)103、系統(tǒng)總線104、硬盤控制器105、鍵盤控制器106、串行接口控制器107、并行接口控制器108、顯示控制器109、硬盤110、鍵盤111、串行外部設(shè)備112、并行外部設(shè)備113和顯示器114。在這些設(shè)備中,與系統(tǒng)總線104耦合的有CPU 10URAM 102, ROM 103、硬盤控制器105、鍵盤控制器106、串行控制器107、并行控制器108和顯示控制器109。硬盤110與硬盤控制器105耦合,鍵盤111與鍵盤控制器106耦合,串行外部設(shè)備112與串行接口控制器107耦合,并行外部設(shè)備113與并行接口控制器108耦合,以及顯示器114與顯示控制器109耦合。應(yīng)當(dāng)理解,圖I所述的結(jié)構(gòu)框圖僅僅為了示例的目的而示出的,而不是對(duì)本發(fā)明范圍的限制。在某些情況下,可以根據(jù)具體情況而增加或者減少某些設(shè)備。在數(shù)據(jù)庫(kù)的應(yīng)用中,數(shù)據(jù)一般存在于多個(gè)相關(guān)聯(lián)的表中,基本上沒(méi)有數(shù)據(jù)只存在于一張表的情況。小的應(yīng)用系統(tǒng)的數(shù)據(jù)集有十幾張表,大型系統(tǒng)數(shù)據(jù)集有上千張表。因此,用戶和數(shù)據(jù)庫(kù)應(yīng)用程序經(jīng)常要做的就是在多個(gè)表的大數(shù)據(jù)集中進(jìn)行數(shù)據(jù)查詢。也就是使用數(shù)據(jù)庫(kù)多表關(guān)聯(lián)查詢,多表關(guān)聯(lián)查詢一般使用表連接技術(shù),這種查詢最為耗時(shí)。因此,一般來(lái)說(shuō),只有這種多表關(guān)聯(lián)查詢才會(huì)有同時(shí)以最小查詢響應(yīng)時(shí)間和最小查詢總時(shí)間來(lái)執(zhí)行該查詢的必要性,單張表的查詢一般來(lái)說(shuō)響應(yīng)是非??斓模绻脩艋驊?yīng)用程序有上述要求,使用最小查詢總時(shí)間來(lái)運(yùn)行查詢即可。
      ·
      以查詢的連接操作是對(duì)數(shù)據(jù)庫(kù)中的兩個(gè)表進(jìn)行的操作為例,多表的關(guān)聯(lián)操作可以認(rèn)為是若干組兩張表關(guān)聯(lián)的組合,圖2示出一個(gè)示例性的查詢請(qǐng)求及其對(duì)應(yīng)的兩張表,以下的敘述中,以此為實(shí)例,講述本發(fā)明的方法及各種實(shí)現(xiàn)方式。查詢的連接操作也可以是對(duì)數(shù)據(jù)庫(kù)中的多個(gè)查詢中間結(jié)果集、或表與查詢中間結(jié)果集進(jìn)行的操作,因此,本領(lǐng)域技術(shù)人員可以知道,表Tl和表T2之一或全部也可以是查詢結(jié)果的中間集。圖2中,包含了兩張表,其共同的列為 Product_id,查詢語(yǔ)句為Select * from Tl, T2where Tl. Product_id =T2. Product_id0多表關(guān)聯(lián)查詢一般使用的表連接技術(shù)包括嵌套循環(huán)連接(nested loop join)、哈希連接(hash join)以及排序合并連接(merge join)等。嵌套循環(huán)連接的工作方式是這樣的首先選擇一張表作為連接的驅(qū)動(dòng)表,例如圖2的表Tl,然后提取驅(qū)動(dòng)表Tl中符合條件的記錄,與被驅(qū)動(dòng)表,例如圖2的表T2的連接列進(jìn)行關(guān)聯(lián)查詢,得到符合條件的記錄。在這個(gè)過(guò)程中,首先提取驅(qū)動(dòng)表Tl中符合條件的第一條記錄,再與被驅(qū)動(dòng)表T2的連接列進(jìn)行關(guān)聯(lián)查詢,得到相應(yīng)的記錄行。在關(guān)聯(lián)查詢的過(guò)程中,會(huì)持續(xù)提取驅(qū)動(dòng)表Tl中其它符合條件的記錄與被驅(qū)動(dòng)表T2關(guān)聯(lián)查詢,不需要等到全部流程結(jié)束再返回結(jié)果集,而是不斷地將查詢出來(lái)的結(jié)果集返回。在這種情況下,終端用戶將會(huì)快速地得到返回的首批記錄。因此嵌套循環(huán)連接返回前幾條記錄的速度是非??斓?。嵌套循環(huán)連接適用于查詢的選擇性強(qiáng)、約束性高并且僅返回小部分記錄的結(jié)果集。圖3示出了哈希連接的工作方式,根據(jù)圖3,哈希連接的工作方式分為兩個(gè)階段首先是構(gòu)建階段查詢引擎優(yōu)化器首先選擇一張表,例如圖2的表T2,運(yùn)用哈希函數(shù)對(duì)表T2的連接列(即表T2中的Productjd列),進(jìn)行計(jì)算產(chǎn)生一張哈希表;然后是探測(cè)階段查詢引擎優(yōu)化器對(duì)另外一張表(例如圖2的表Tl)的每條記錄的連接列(即表Tl中的ProdUCt_id列)運(yùn)用同樣的哈希函數(shù)計(jì)算得到哈希值并在生成的哈希表中查找是否存在匹配的哈希值。對(duì)于數(shù)據(jù)量比較大的表T2,哈希連接的構(gòu)建階段需要花費(fèi)比較長(zhǎng)的時(shí)間進(jìn)行哈希表的初始化;而對(duì)于分布式數(shù)據(jù)庫(kù)環(huán)境下,若數(shù)據(jù)還需要從遠(yuǎn)端提取,該構(gòu)造時(shí)間還將進(jìn)一步延長(zhǎng)。因此,哈希連接存在較長(zhǎng)的查詢響應(yīng)時(shí)間。但是,一旦哈希表建立完畢,能夠快速獲得全部的查詢結(jié)果集,因此,哈希連接比較適用于要求查詢總時(shí)間小并且返回大數(shù)據(jù)量結(jié)果集的查詢。排序合并連接的方法比較簡(jiǎn)單。排序合并連接的工作方式也分為兩個(gè)階段,類似于哈希連接首先是構(gòu)建階段查詢引擎優(yōu)化器對(duì)兩張表中大的表按照連接列進(jìn)行排序,即圖2的表T2按照PiOductjd列進(jìn)行排序,排序需要較長(zhǎng)的時(shí)間;然后是運(yùn)行階段首先對(duì)兩張表中另外一張表,即圖2的表Tl,也按照Product id列進(jìn)行排序,由于該表較小,排序時(shí)間短,查詢引擎優(yōu)化器對(duì)兩張排序后的表直接進(jìn)行合并連接,提取符合條件的記錄,就可以得到查詢結(jié)果。一旦排序結(jié)束,能夠快速獲得全部查詢結(jié)果,因此,相比嵌套循環(huán)連接,排序合并連接比較適用于要求查詢總時(shí)間小并且返回大數(shù)據(jù)量結(jié)果的查詢?,F(xiàn)有技術(shù)中,對(duì)于大數(shù)據(jù)集的連接查詢,數(shù)據(jù)庫(kù)管理系統(tǒng)的查詢引擎優(yōu)化器通常為了得到更好的查詢總時(shí)間,通常會(huì)選擇哈希連接或者排序合并連接。在強(qiáng)制數(shù)據(jù)庫(kù)管理系統(tǒng)的查詢引擎優(yōu)化器得到更好查詢響應(yīng)時(shí)間時(shí),查詢引擎優(yōu)化器會(huì)選擇嵌套循環(huán)連接。 以下表I比較了這三種連接方式,由表I可見(jiàn),不同的連接類型具有不同的優(yōu)勢(shì),根據(jù)這樣的優(yōu)勢(shì),可以將連接類型分為兩類,一類是查詢總時(shí)間最小的連接,一類是查詢響應(yīng)時(shí)間最小的連接。相應(yīng)地,查詢引擎優(yōu)化器可以輸出以查詢總時(shí)間最小的連接建立的查詢總時(shí)間最小的查詢計(jì)劃和以查詢響應(yīng)時(shí)間最小的連接建立的查詢總時(shí)間最小的查詢計(jì)劃。表I三種連接方式的比較
      權(quán)利要求
      1.一種數(shù)據(jù)庫(kù)查詢的方法,包括 響應(yīng)于查詢請(qǐng)求,獲得該查詢請(qǐng)求的以最小查詢響應(yīng)時(shí)間為目標(biāo)的查詢計(jì)劃以及以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃; 開(kāi)始執(zhí)行以最小查詢響應(yīng)時(shí)間為目標(biāo)的查詢計(jì)劃以及以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃; 在以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃執(zhí)行到指定點(diǎn)之前,輸出以最小查詢響應(yīng)時(shí)間為目標(biāo)的查詢計(jì)劃執(zhí)行得到的初始查詢結(jié)果; 響應(yīng)于以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃執(zhí)行到指定點(diǎn),繼續(xù)執(zhí)行以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃以輸出剩余查詢結(jié)果。
      2.根據(jù)權(quán)利要求I所述的方法,其中以最小查詢響應(yīng)時(shí)間為目標(biāo)的查詢計(jì)劃是使用嵌套循環(huán)連接的查詢計(jì)劃,以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃是使用哈希連接的查詢計(jì)劃,所述指定點(diǎn)是哈希連接的構(gòu)建階段結(jié)束的點(diǎn)。
      3.根據(jù)權(quán)利要求2所述的方法,其中所述繼續(xù)執(zhí)行以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃包括 從使用嵌套循環(huán)連接的查詢計(jì)劃的驅(qū)動(dòng)表中的第一個(gè)未執(zhí)行嵌套循環(huán)連接查詢計(jì)劃的記錄開(kāi)始,執(zhí)行使用哈希連接的查詢計(jì)劃的探測(cè)階段的操作。
      4.根據(jù)權(quán)利要求I所述的方法,其中以最小查詢響應(yīng)時(shí)間為目標(biāo)的查詢計(jì)劃是使用嵌套循環(huán)連接的查詢計(jì)劃,以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃是使用排序合并連接的查詢計(jì)劃,所述指定點(diǎn)是排序合并連接的構(gòu)建階段結(jié)束的點(diǎn)。
      5.根據(jù)權(quán)利要求4所述的方法,其中,所述在排序合并連接的構(gòu)建階段中對(duì)使用嵌套循環(huán)連接的查詢計(jì)劃的驅(qū)動(dòng)表之外的另外一張表按照連接列進(jìn)行排序,得到另外一張表的排序表;并且其中所述繼續(xù)執(zhí)行以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃包括對(duì)使用嵌套循環(huán)連接的查詢計(jì)劃的驅(qū)動(dòng)表中的已經(jīng)執(zhí)行過(guò)嵌套循環(huán)連接查詢計(jì)劃的記錄,不再執(zhí)行使用排序合并連接的查詢計(jì)劃的執(zhí)行階段的操作。
      6.根據(jù)權(quán)利要求5所述的方法,其中對(duì)使用嵌套循環(huán)連接的查詢計(jì)劃的驅(qū)動(dòng)表中的已經(jīng)執(zhí)行過(guò)嵌套循環(huán)連接查詢計(jì)劃的記錄,不再執(zhí)行使用排序合并連接的查詢計(jì)劃的執(zhí)行階段的操作包括 對(duì)所述驅(qū)動(dòng)表去除已經(jīng)執(zhí)行過(guò)嵌套循環(huán)連接查詢計(jì)劃的記錄后,按照連接列進(jìn)行排序,得到剩余驅(qū)動(dòng)表的排序表; 對(duì)剩余驅(qū)動(dòng)表的排序表和另外一張表的排序表進(jìn)行合并連接操作,得到所述剩余查詢結(jié)果。
      7.根據(jù)權(quán)利要求2或4所述的方法,其中所述繼續(xù)執(zhí)行以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃,輸出剩余查詢結(jié)果包括 存儲(chǔ)所述初始查詢結(jié)果; 存儲(chǔ)以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃的全部查詢結(jié)果; 將全部查詢結(jié)果中去除初始查詢結(jié)果,得到剩余查詢結(jié)果。
      8.根據(jù)權(quán)利要求I所述的方法,其中所述查詢請(qǐng)求是對(duì)數(shù)據(jù)庫(kù)中的以下至少一個(gè)進(jìn)行的 多個(gè)表;多個(gè)查詢中間結(jié)果集; 表與查詢中間結(jié)果集。
      9.根據(jù)權(quán)利要求I所述的方法,其中在獲得該查詢請(qǐng)求的以最小查詢響應(yīng)時(shí)間為目標(biāo)的查詢計(jì)劃以及以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃之前還包括 利用數(shù)據(jù)庫(kù)查詢引擎優(yōu)化器的代價(jià)模型評(píng)估以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃使用哈希連接的查詢計(jì)劃以及使用排序合并連接的查詢計(jì)劃; 選擇上述二者中代價(jià)小的查詢計(jì)劃作為以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃。
      10.一種數(shù)據(jù)庫(kù)查詢的系統(tǒng),包括 獲得裝置,被配置為響應(yīng)于查詢請(qǐng)求,獲得該查詢請(qǐng)求的以最小查詢響應(yīng)時(shí)間為目標(biāo)的查詢計(jì)劃以及以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃; 執(zhí)行裝置,被配置為執(zhí)行以最小查詢響應(yīng)時(shí)間為目標(biāo)的查詢計(jì)劃以及以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃; 控制裝置,被配置為檢測(cè)以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃是否執(zhí)行到指定點(diǎn); 輸出裝置,被配置為輸出查詢結(jié)果; 其中,在所述控制裝置檢測(cè)到以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃執(zhí)行到指定點(diǎn)之前,所述輸出裝置輸出以最小查詢響應(yīng)時(shí)間為目標(biāo)的查詢計(jì)劃執(zhí)行得到的初始查詢結(jié)果;響應(yīng)于所述控制裝置檢測(cè)到以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃執(zhí)行到指定點(diǎn),所述執(zhí)行裝置繼續(xù)執(zhí)行以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃以使所述輸出裝置輸出剩余查詢結(jié)果。
      11.根據(jù)權(quán)利要求10所述的系統(tǒng),其中以最小查詢響應(yīng)時(shí)間為目標(biāo)的查詢計(jì)劃是使用嵌套循環(huán)連接的查詢計(jì)劃,以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃是使用哈希連接的查詢計(jì)劃,所述指定點(diǎn)是哈希連接的構(gòu)建階段結(jié)束的點(diǎn)。
      12.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述執(zhí)行裝置繼續(xù)執(zhí)行以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃包括 執(zhí)行裝置從使用嵌套循環(huán)連接的查詢計(jì)劃的驅(qū)動(dòng)表中的第一個(gè)未執(zhí)行嵌套循環(huán)連接查詢計(jì)劃的記錄開(kāi)始,執(zhí)行使用哈希連接的查詢計(jì)劃的探測(cè)階段的操作。
      13.根據(jù)權(quán)利要求10所述的系統(tǒng),其中以最小查詢響應(yīng)時(shí)間為目標(biāo)的查詢計(jì)劃是使用嵌套循環(huán)連接的查詢計(jì)劃,以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃是使用排序合并連接的查詢計(jì)劃,所述指定點(diǎn)是排序合并連接的構(gòu)建階段結(jié)束的點(diǎn)。
      14.根據(jù)權(quán)利要求13所述的系統(tǒng),其中在所述排序合并連接的構(gòu)建階段中對(duì)使用嵌套循環(huán)連接的查詢計(jì)劃的驅(qū)動(dòng)表之外的另外一張表按照連接列進(jìn)行排序,得到另外一張表的排序表;并且其中所述執(zhí)行裝置繼續(xù)執(zhí)行以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃包括 執(zhí)行裝置對(duì)使用嵌套循環(huán)連接的查詢計(jì)劃的驅(qū)動(dòng)表中的已經(jīng)執(zhí)行過(guò)嵌套循環(huán)連接查詢計(jì)劃的記錄,不再執(zhí)行使用排序合并連接的查詢計(jì)劃的執(zhí)行階段的操作。
      15.根據(jù)權(quán)利要求14所述的系統(tǒng),其中所述執(zhí)行裝置包括 去除裝置,被配置為對(duì)所述驅(qū)動(dòng)表去除已經(jīng)執(zhí)行過(guò)嵌套循環(huán)連接查詢計(jì)劃的記錄后,按照連接列進(jìn)行排序,得到剩余驅(qū)動(dòng)表的排序表; 合并連接裝置,被配置為對(duì)剩余驅(qū)動(dòng)表的排序表和另外一張表的排序表進(jìn)行合并連接操作,得到所述剩余查詢結(jié)果。
      16.根據(jù)權(quán)利要求11或13所述的系統(tǒng),其中所述執(zhí)行裝置還包括初始查詢結(jié)果存儲(chǔ)裝置,被配置為存儲(chǔ)所述初始查詢結(jié)果; 全部查詢結(jié)果存儲(chǔ)裝置,被配置為存儲(chǔ)以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃的全部查詢結(jié)果; 剩余查詢結(jié)果獲得裝置,被配置為將全部查詢結(jié)果中去除初始查詢結(jié)果,得到剩余查詢結(jié)果。
      17.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述查詢請(qǐng)求是對(duì)數(shù)據(jù)庫(kù)中的以下至少一個(gè)進(jìn)行的 多個(gè)表; 多個(gè)查詢中間結(jié)果集; 表與查詢中間結(jié)果集。
      18.根據(jù)權(quán)利要求10所述的系統(tǒng),其中還包括 評(píng)估裝置,被配置為利用數(shù)據(jù)庫(kù)查詢引擎優(yōu)化器的代價(jià)模型評(píng)估以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃使用哈希連接的查詢計(jì)劃以及使用排序合并連接的查詢計(jì)劃; 選擇裝置,被配置為選擇上述二者中代價(jià)小的查詢計(jì)劃作為以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃。
      全文摘要
      本發(fā)明公開(kāi)了一種數(shù)據(jù)庫(kù)查詢的方法和系統(tǒng),該方法包括響應(yīng)于查詢請(qǐng)求,獲得該查詢請(qǐng)求的以最小查詢響應(yīng)時(shí)間為目標(biāo)的查詢計(jì)劃以及以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃;開(kāi)始執(zhí)行以最小查詢響應(yīng)時(shí)間為目標(biāo)的查詢計(jì)劃以及以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃;在以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃執(zhí)行到指定點(diǎn)之前,輸出以最小查詢響應(yīng)時(shí)間為目標(biāo)的查詢計(jì)劃執(zhí)行得到的初始查詢結(jié)果;響應(yīng)于以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃執(zhí)行到指定點(diǎn),繼續(xù)執(zhí)行以最小查詢總時(shí)間為目標(biāo)的查詢計(jì)劃以輸出剩余查詢結(jié)果。該查詢方法和系統(tǒng)能同時(shí)減少查詢響應(yīng)時(shí)間和查詢總時(shí)間。
      文檔編號(hào)G06F17/30GK102968420SQ201110270208
      公開(kāi)日2013年3月13日 申請(qǐng)日期2011年8月31日 優(yōu)先權(quán)日2011年8月31日
      發(fā)明者張廣舟, 雷尚順, 趙勝, 孫云峰, 陳奇 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1