新四季網

資料庫查詢的方法和系統的製作方法

2023-09-16 03:20:05 1

專利名稱:資料庫查詢的方法和系統的製作方法
技術領域:
本發明一般涉及資料庫管理系統,更具體地,涉及一種資料庫查詢的方法和系統。
背景技術:
資料庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫。關係資料庫是目前常用的資料庫類型,對關係型資料庫中的數據,目前使用結構化查詢語言(SQL)進行查詢。SQL語言的功能包括查詢、操縱、定義和控制,是一個綜合的、通用的關係資料庫語言,同時又是一種高度非過程化的語言,只要求用戶指出做什麼而不需要指出怎麼做。SQL集成實現了資料庫生命周期中的全部操作。SQL提供了與關係資料庫進行交互的方法,它可以與標準的程式語言一起工作。 資料庫管理系統(database management system)是一種操縱和管理資料庫的大型軟體,用於建立、使用和維護資料庫,簡稱DBMS。它對資料庫進行統一的管理和控制,以保證資料庫的安全性和完整性。現有的關係型資料庫管理系統包括IBM的DB2、Oracle、Informix、Sybase、SQL Server 等。資料庫管理系統的查詢引擎(Query ExecutionRuntime)都支持SQL語言的查詢功能。用戶或者應用程式可以使用SQL語言,通過資料庫管理系統的查詢引擎對其管理的資料庫進行查詢。查詢的結果一般包含多個記錄,一般稱返回第一條滿足查詢條件數據的時間為查詢響應時間(response time),而返回所有滿足查詢條件的數據結果集的時間稱為查詢總時間(total time)。目前的資料庫管理系統接收到查詢請求時,會默認儘可能使用最小查詢總時間運行查詢,資料庫管理系統會產生一個查詢訪問計劃,該計劃能夠以最有效的方式返回給用戶或者發出查詢的應用程式完整的查詢結果。有時,發出查詢的應用程式或用戶傾向於儘快得到開始的幾個查詢結果,而不關注完成整個查詢所經過的時間,這種應用可以使用語句「OPTIMIZED FOR FIRST N ROW」來通知資料庫管理系統的查詢引擎優化器以最小查詢響應時間而不是最小查詢總時間來執行查詢。然而,許多應用需要同時以最小查詢響應時間和最小查詢總時間來執行查詢。當一個發出查詢的應用發出查詢請求,它需要儘快從資料庫中得到響應,然後得到初始的幾個查詢結果,以便可以判斷是否進行後續的查詢或者其它商業邏輯。當前的資料庫管理系統只能或者提供以最小查詢響應時間的查詢計劃,或者提供以最小查詢總時間的查詢計劃,這些查詢計劃都沒有辦法能同時減少查詢響應時間和查詢總時間。

發明內容
因此,需要一種新的資料庫查詢方法,該方法使得用戶或應用程式在查詢資料庫時,能夠同時以最小查詢響應時間和最小查詢執行時間來執行該查詢,從而滿足用戶或應用程式的資料庫查詢要求。根據本發明的一個方面,提供了一種資料庫查詢的方法,包括響應於查詢請求,獲得該查詢請求的以最小查詢響應時間為目標的查詢計劃以及以最小查詢總時間為目標的查詢計劃;開始執行以最小查詢響應時間為目標的查詢計劃以及以最小查詢總時間為目標的查詢計劃;在以最小查詢總時間為目標的查詢計劃 執行到指定點之前,輸出以最小查詢響應時間為目標的查詢計劃執行得到的初始查詢結果;響應於以最小查詢總時間為目標的查詢計劃執行到指定點,繼續執行以最小查詢總時間為目標的查詢計劃以輸出剩餘查詢結果。根據本發明的另一個方面,提供了一種資料庫查詢的系統,包括獲得裝置,被配置為響應於查詢請求,獲得該查詢請求的以最小查詢響應時間為目標的查詢計劃以及以最小查詢總時間為目標的查詢計劃;執行裝置,被配置為執行以最小查詢響應時間為目標的查詢計劃以及以最小查詢總時間為目標的查詢計劃;控制裝置,被配置為檢測以最小查詢總時間為目標的查詢計劃是否執行到指定佔.輸出裝置,被配置為輸出查詢結果;其中,在所述控制裝置檢測到以最小查詢總時間為目標的查詢計劃執行到指定點之前,所述輸出裝置輸出以最小查詢響應時間為目標的查詢計劃執行得到的初始查詢結果;響應於所述控制裝置檢測到以最小查詢總時間為目標的查詢計劃執行到指定點,所述執行裝置繼續執行以最小查詢總時間為目標的查詢計劃以使所述輸出裝置輸出剩餘查詢結果。


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

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀