国产精品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ù)庫查詢優(yōu)化方法和設(shè)備的制造方法

      文檔序號(hào):8445529閱讀:489來源:國(guó)知局
      數(shù)據(jù)庫查詢優(yōu)化方法和設(shè)備的制造方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及數(shù)據(jù)庫系統(tǒng),并且更具體地,涉及一種數(shù)據(jù)庫查詢優(yōu)化方法和設(shè)備。
      【背景技術(shù)】
      [0002]近年來,隨著信息技術(shù)和市場(chǎng)的高速發(fā)展,數(shù)據(jù)管理逐漸呈現(xiàn)出數(shù)據(jù)總量不斷增力口、數(shù)據(jù)格式和數(shù)據(jù)類型越發(fā)復(fù)雜的趨勢(shì)。為了使得用戶能夠在海量的數(shù)據(jù)中快速獲取他們所需要的數(shù)據(jù),數(shù)據(jù)庫技術(shù)應(yīng)運(yùn)而生。
      [0003]為了能夠從數(shù)據(jù)庫中獲取用戶所需的信息,用戶需要使用查詢命令來完成一系列的查詢操作。典型地,一個(gè)查詢命令通常包括多個(gè)查詢語句,用于指定適用于數(shù)據(jù)庫中一個(gè)或多個(gè)數(shù)據(jù)列的查詢條件,以便當(dāng)在數(shù)據(jù)庫中搜索到滿足查詢條件的記錄(或稱之為,數(shù)據(jù)行)時(shí),返回在該記錄之中用戶所需的一個(gè)或多個(gè)數(shù)據(jù)列的數(shù)據(jù)值,作為查詢結(jié)果。
      [0004]多年以來,商業(yè)數(shù)據(jù)庫生產(chǎn)商一直致力于提高數(shù)據(jù)庫的查詢性能。為此目的,已經(jīng)開發(fā)出了數(shù)據(jù)庫查詢優(yōu)化器(optimizer)。該查詢優(yōu)化器是數(shù)據(jù)庫管理系統(tǒng)的一個(gè)組成部分,用于評(píng)估用戶輸入的查詢命令,并且根據(jù)影響查詢性能的各種不同因素來尋找最佳的訪問路徑,用于執(zhí)行查詢操作。
      [0005]然而,受限于現(xiàn)有技術(shù),查詢優(yōu)化器在對(duì)于某些查詢命令執(zhí)行優(yōu)化操作時(shí),其性能并不理想。特別是,在這些查詢命令中至少包括兩個(gè)查詢語句,這兩個(gè)查詢語句參考同一表格,并且一個(gè)查詢語句的查詢結(jié)果要基于另一個(gè)查詢語句的查詢結(jié)果來獲得時(shí),現(xiàn)有的查詢優(yōu)化器無法有效地對(duì)它進(jìn)行優(yōu)化。

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

      [0006]鑒于以上問題,提出了本發(fā)明。本發(fā)明的一個(gè)目的是提供一種數(shù)據(jù)庫查詢優(yōu)化方法和設(shè)備,其能夠考慮到跨越查詢塊的自連接的查詢命令的特性,省去在現(xiàn)有技術(shù)中通過數(shù)據(jù)值來查找索引和根據(jù)索引來查找RID所有的中間步驟,使得減少了整個(gè)查詢操作所需要的系統(tǒng)資源。
      [0007]根據(jù)本發(fā)明的一個(gè)方面,提供了一種數(shù)據(jù)庫查詢優(yōu)化方法,包括:接收第一查詢命令,所述第一查詢語句用于從第一表格獲得第一查詢結(jié)果,所述第二查詢語句用于從第二表格獲得第二查詢結(jié)果,所述第一查詢語句用于通過所述第二查詢結(jié)果和第一過濾條件來從第一表格獲得第一查詢結(jié)果,所述第一表格和所述第二表格中的每一個(gè)指向數(shù)據(jù)庫中的同一基礎(chǔ)表格;基于所述第二查詢語句來生成第三表格的定義語句,所述第三表格用于存儲(chǔ)第三查詢結(jié)果,所述第三查詢結(jié)果包括所述第一查詢結(jié)果和記錄標(biāo)識(shí)列上的數(shù)據(jù)值中的至少一個(gè);以及在所述第一查詢命令中,利用所述定義語句來替換所述第二查詢語句,并且基于所述第三表格來改寫所述第一查詢語句,從而將所述第一查詢命令轉(zhuǎn)換為第二查詢命令。
      [0008]根據(jù)本發(fā)明的另一方面,提供了一種數(shù)據(jù)庫查詢優(yōu)化設(shè)備,包括:命令接收單元,用于接收第一查詢命令,所述第一查詢命令至少包括第一查詢語句和第二查詢語句,所述第二查詢語句用于從第二表格獲得第二查詢結(jié)果,所述第一查詢語句用于通過所述第二查詢結(jié)果和第一過濾條件來從第一表格獲得第一查詢結(jié)果,所述第一表格和所述第二表格中的每一個(gè)指向數(shù)據(jù)庫中的同一基礎(chǔ)表格;表格定義單元,用于基于所述第二查詢語句來生成第三表格的定義語句,所述第三表格用于存儲(chǔ)第三查詢結(jié)果,所述第三查詢結(jié)果包括所述第一查詢結(jié)果和記錄標(biāo)識(shí)列上的數(shù)據(jù)值中的至少一個(gè);以及命令轉(zhuǎn)換單元,用于在所述第一查詢命令中,利用所述定義語句來替換所述第二查詢語句,并且基于所述第三表格來改寫所述第一查詢語句,從而將所述第一查詢命令轉(zhuǎn)換為第二查詢命令。
      [0009]采用根據(jù)本發(fā)明的數(shù)據(jù)庫查詢優(yōu)化方法和設(shè)備,可以對(duì)具有跨越查詢塊的自連接的查詢命令進(jìn)行查詢語義變換,將子查詢塊作為一個(gè)臨時(shí)表格而合并到父查詢塊中,使得與現(xiàn)有技術(shù)相比,可以通過更低的計(jì)算成本來實(shí)現(xiàn)數(shù)據(jù)庫中的查詢操作,從而提升了查詢命令的執(zhí)行效率,節(jié)省了查詢命令的運(yùn)行時(shí)間,提高了在數(shù)據(jù)庫查詢時(shí)的用戶體驗(yàn)。
      【附圖說明】
      [0010]通過結(jié)合附圖對(duì)本公開示例性實(shí)施方式進(jìn)行更詳細(xì)的描述,本公開的上述以及其它目的、特征和優(yōu)勢(shì)將變得更加明顯,其中,在本公開示例性實(shí)施方式中,相同的參考標(biāo)號(hào)通常代表相同部件。
      [0011]圖1示出了適于用來實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性計(jì)算機(jī)系統(tǒng)/服務(wù)器12的框圖。
      [0012]圖2示出了根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)庫系統(tǒng)的組織架構(gòu)圖。
      [0013]圖3A示出了根據(jù)第一具體示例的第一查詢命令的格式。
      [0014]圖3B示出了根據(jù)第二具體示例的第一查詢命令的格式。
      [0015]圖3C示出了根據(jù)第三具體示例的第一查詢命令的格式。
      [0016]圖3D示出了根據(jù)第四具體示例的第一查詢命令的格式。
      [0017]圖3E示出了根據(jù)第五具體示例的第一查詢命令的格式。
      [0018]圖3F示出了根據(jù)第六具體示例的第一查詢命令的格式。
      [0019]圖3G示出了根據(jù)第七具體示例的第一查詢命令的格式。
      [0020]圖4示出了圖3A中的基礎(chǔ)表格的示例內(nèi)容。
      [0021]圖5示出了根據(jù)現(xiàn)有技術(shù)所生成的訪問路徑。
      [0022]圖6示出了根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)庫查詢優(yōu)化方法的流程圖。
      [0023]圖7A示出了根據(jù)本發(fā)明第一實(shí)施例的第二查詢命令的示例格式。
      [0024]圖7B示出了根據(jù)本發(fā)明第二實(shí)施例的第二查詢命令的示例格式。
      [0025]圖7C示出了根據(jù)本發(fā)明第三實(shí)施例的第二查詢命令的示例格式。
      [0026]圖7D示出了根據(jù)本發(fā)明第四實(shí)施例的第二查詢命令的示例格式。
      [0027]圖8A示出了根據(jù)本發(fā)明第一實(shí)施例所生成的訪問路徑。
      [0028]圖SB示出了根據(jù)本發(fā)明第三實(shí)施例所生成的訪問路徑。
      [0029]圖9A示出了在運(yùn)行環(huán)境中執(zhí)行根據(jù)現(xiàn)有技術(shù)所生成的訪問路徑的性能參數(shù)。
      [0030]圖9B示出了在運(yùn)行環(huán)境中執(zhí)行根據(jù)第一實(shí)施例所生成的訪問路徑的性能參數(shù)。
      [0031]圖10示出了根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)庫查詢優(yōu)化設(shè)備的框圖。
      【具體實(shí)施方式】
      [0032]在附圖中顯示了本公開的一些優(yōu)選實(shí)施方式,下面將參照附圖更詳細(xì)地描述這些優(yōu)選實(shí)施方式。然而,可以以各種形式實(shí)現(xiàn)本公開,其不應(yīng)被這里闡述的實(shí)施方式所限制。相反,提供這些實(shí)施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的范圍完整地傳達(dá)給本領(lǐng)域的技術(shù)人員。
      [0033]所屬技術(shù)領(lǐng)域的技術(shù)人員知道,本發(fā)明的各個(gè)方面可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明的各個(gè)方面可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件實(shí)施方式、完全的軟件實(shí)施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實(shí)施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實(shí)施例中,本發(fā)明的各個(gè)方面還可以實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可讀的程序代碼。
      [0034]可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)盤、硬盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPR0M或閃存)、光纖、便攜式緊湊盤只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
      [0035]計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào),其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括——但不限于——電磁信號(hào)、光信號(hào)或上述的任意合適的組合。計(jì)算機(jī)可讀的信號(hào)介質(zhì)還可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
      [0036]計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無線、有線、光纜、RF等等,或者上述的任意合適的組合。
      [0037]可以以一種或多種程序設(shè)計(jì)語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語言一諸如Java、Smalltalk、C++等,還包括常規(guī)的過程式程序設(shè)計(jì)語言一諸如“C”語言或類似的程序設(shè)計(jì)語言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
      [0038]下面將參照根據(jù)本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些計(jì)算機(jī)程序指令在通過計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時(shí),產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的裝置。
      [0039]也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中,這些指令使得計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其他設(shè)備以特定方式工作,從而,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出包括實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的指令的制造品(article of manufacture)0
      [0040]也可以把計(jì)算機(jī)程序指令加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過程,從而使得在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令提供實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的過程。
      [0041]圖1示出了適于用來實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性計(jì)算機(jī)系統(tǒng)/服務(wù)器12的框圖。圖1顯示的計(jì)算機(jī)系統(tǒng)/服務(wù)器12僅僅是一個(gè)示例,不應(yīng)對(duì)本發(fā)明實(shí)施例的功能和使用范圍帶來任何限制。
      [0042]如圖1所示,計(jì)算機(jī)系統(tǒng)/服務(wù)器12以通用計(jì)算設(shè)備的形式表現(xiàn)。計(jì)算機(jī)系統(tǒng)/服務(wù)器12的組件可以包括但不限于:一個(gè)或者多個(gè)處理器或者處理單元16,系統(tǒng)存儲(chǔ)器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲(chǔ)器28和處理單元16)的總線18。
      [0043]總線18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲(chǔ)器總線或者存儲(chǔ)器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉例來說,這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC)總線,增強(qiáng)型ISA總線、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局域總線以及外圍組件互連(PCI)總線。
      [0044]計(jì)算機(jī)系統(tǒng)/服務(wù)器12典型地包括多種計(jì)算機(jī)系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是任何能夠被計(jì)算機(jī)系統(tǒng)/服務(wù)器12訪問的可用介質(zhì),包括易失性和非易失性介質(zhì),可移動(dòng)的和不可移動(dòng)的介質(zhì)。
      [0045]系統(tǒng)存儲(chǔ)器28可以包括易失性存儲(chǔ)器形式的計(jì)算機(jī)系統(tǒng)可讀介質(zhì),例如隨機(jī)存取存儲(chǔ)器(RAM)30和/或高速緩存存儲(chǔ)器32。計(jì)算機(jī)系統(tǒng)/服務(wù)器12可以進(jìn)一步包括其它可移動(dòng)/不可移動(dòng)的、易失性/非易失性計(jì)算機(jī)系統(tǒng)存儲(chǔ)介質(zhì)。僅作為舉例,存儲(chǔ)系統(tǒng)34可以用于讀寫不可移動(dòng)的、非易失性磁介質(zhì)(圖1未顯示,通常稱為“硬盤驅(qū)動(dòng)器”)。盡管圖1中未示出,可以提供用于對(duì)可移動(dòng)非易失性磁盤(例如“軟盤”)讀寫的磁盤驅(qū)動(dòng)器,以及對(duì)可移動(dòng)非易失性光盤(例如⑶-ROM,DVD-ROM或者其它光介質(zhì))讀寫的光盤驅(qū)動(dòng)器。在這些情況下,每個(gè)驅(qū)動(dòng)器可以通過一個(gè)或者多個(gè)數(shù)據(jù)介質(zhì)接口與總線18相連。存儲(chǔ)器28可以包括至少一個(gè)程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個(gè))程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實(shí)施例的功能。
      [0046]具有一組(至少一個(gè))程序模塊42的程序/實(shí)用工具40,可以存儲(chǔ)在例如存儲(chǔ)器28中,這樣的程序模塊42包括——但不限于——操作系統(tǒng)、一個(gè)或者多個(gè)應(yīng)用程序、其它程
      當(dāng)前第1頁1 2 3 4 5 6 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1