專利名稱:測(cè)試數(shù)據(jù)庫(kù)查詢引擎的效率和穩(wěn)定性的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及測(cè)試數(shù)據(jù)庫(kù)查詢引擎的穩(wěn)定性和效率。
背景技術(shù):
查詢優(yōu)化器是一種試圖確定執(zhí)行查詢的最有效途徑的數(shù)據(jù)庫(kù)管理系統(tǒng)的組件。如果設(shè)計(jì)和實(shí)現(xiàn)恰當(dāng),查詢優(yōu)化器可以明顯提高數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMQ查詢處理的效率。測(cè)試任何數(shù)據(jù)庫(kù)系統(tǒng)的穩(wěn)定性和效率是有挑戰(zhàn)的,原因是由查詢優(yōu)化器所選擇的查詢執(zhí)行計(jì)劃是受包括在底層數(shù)據(jù)庫(kù)表中的數(shù)據(jù)大小、數(shù)據(jù)分布和待執(zhí)行以操縱數(shù)據(jù)的查詢類型的因素以及其它因素影響的。已經(jīng)提出測(cè)試查詢引擎的性能的不同方法。一個(gè)此類的測(cè)試方法包括選擇具有一個(gè)或多個(gè)判定的查詢,并將其提供給DBMS內(nèi)的查詢優(yōu)化器。查詢優(yōu)化器生成查詢執(zhí)行計(jì)劃 (QEP),然后查詢基于所生成的QEP被執(zhí)行。用戶然后可以使用諸如查詢執(zhí)行時(shí)間的參數(shù)來(lái)確定查詢優(yōu)化器的性能。此測(cè)試方法的局限性之一是查詢優(yōu)化器對(duì)于給定的查詢很大可能會(huì)生成與之前為相同查詢生成的相同的QEP。如果與查詢的引用之間的查詢優(yōu)化器關(guān)聯(lián)的任何底層成本結(jié)構(gòu)沒(méi)有變化,則此局限性便會(huì)存在。結(jié)果,當(dāng)使用此方法時(shí),與查詢優(yōu)化器關(guān)聯(lián)的查詢執(zhí)行弓I擎會(huì)被測(cè)試僅有限的代碼次數(shù)或執(zhí)行路徑次數(shù)。因此,需要全面測(cè)試數(shù)據(jù)庫(kù)查詢引擎的穩(wěn)定性和效率同時(shí)克服現(xiàn)有測(cè)試方法的局限性的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品。
發(fā)明內(nèi)容
簡(jiǎn)要地說(shuō),本發(fā)明包括用于測(cè)試數(shù)據(jù)庫(kù)查詢引擎的穩(wěn)定性和數(shù)據(jù)查詢優(yōu)化器的效率的系統(tǒng)、方法、計(jì)算機(jī)程序產(chǎn)品的實(shí)施例和組合和其子組合。在一個(gè)實(shí)施例中,由查詢優(yōu)化器考慮的可能的查詢執(zhí)行計(jì)劃以抽象計(jì)劃(AP)的形式被保存。隨后給每個(gè)AP提供查詢以測(cè)試堆棧跟蹤和在查詢執(zhí)行過(guò)程中可能出現(xiàn)的不正確結(jié)果。一個(gè)實(shí)施例包括通過(guò)將每個(gè)AP與由查詢優(yōu)化器選擇的查詢執(zhí)行計(jì)劃比較來(lái)確定優(yōu)化器效率指數(shù)(OEI),并基于相對(duì)于由查詢優(yōu)化器選擇的查詢執(zhí)行計(jì)劃的性能提高或降低程度將AP分成各個(gè)性能桶(performance bucket)。在另一實(shí)施例中,為了確定優(yōu)化器效率指數(shù),AP基于估計(jì)成本被排序,并基于查詢優(yōu)化器估計(jì)和實(shí)際的執(zhí)行行為被分成多個(gè)類。這樣,本發(fā)明的實(shí)施例提供測(cè)試由查詢優(yōu)化器考慮的可能的執(zhí)行計(jì)劃的系統(tǒng)的方式,從而廣泛地測(cè)試數(shù)據(jù)庫(kù)查詢引擎的潛在誤差。下面參照附圖詳細(xì)描述本發(fā)明的另外的實(shí)施例、特征和優(yōu)點(diǎn)以及本發(fā)明的各個(gè)實(shí)施例的結(jié)構(gòu)和操作。
被包括在此處并構(gòu)成說(shuō)明書的一部分的
本發(fā)明的實(shí)施例,并與描述一起進(jìn)一步用來(lái)解釋本發(fā)明的原理,使得相關(guān)領(lǐng)域的技術(shù)人員能夠構(gòu)造并使用本發(fā)明。圖1說(shuō)明根據(jù)本發(fā)明的實(shí)施例的示例的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)。圖2說(shuō)明根據(jù)本發(fā)明的實(shí)施例的測(cè)試引擎。圖3說(shuō)明本發(fā)明的實(shí)施例的示例的性能桶。圖4A是說(shuō)明本發(fā)明的實(shí)施例的測(cè)試引擎的示例性操作的流程圖。圖4B是說(shuō)明本發(fā)明的另一實(shí)施例的測(cè)試引擎的示例性操作的流程圖。圖5是說(shuō)明本發(fā)明的一個(gè)實(shí)施例的示例的測(cè)試方法的流程圖。圖6是說(shuō)明用來(lái)實(shí)現(xiàn)本發(fā)明的實(shí)施例的組件的示例的計(jì)算機(jī)。結(jié)合附圖由下文給出的詳細(xì)描述,本發(fā)明的特征和優(yōu)點(diǎn)將變得更加明顯。圖中,相似的附圖標(biāo)記一般表示相同、功能相似和/或結(jié)構(gòu)相似的元件。通常,某元件首次出現(xiàn)的圖以相應(yīng)的附圖標(biāo)記的最左邊的數(shù)字表示。
具體實(shí)施例方式本發(fā)明涉及用于測(cè)試數(shù)據(jù)庫(kù)查詢引擎的穩(wěn)定性和數(shù)據(jù)庫(kù)查詢優(yōu)化器的效率的系統(tǒng)、方法、計(jì)算機(jī)程序產(chǎn)品的實(shí)施例和其組合和子組合。在一個(gè)實(shí)施例中,由查詢優(yōu)化器考慮的可能的查詢執(zhí)行計(jì)劃以抽象計(jì)劃(AP)的形式被保存。接著給每個(gè)AP提供查詢以測(cè)試堆棧跟蹤和在查詢的執(zhí)行過(guò)程中可能出現(xiàn)的不正確結(jié)果。一個(gè)實(shí)施例包括通過(guò)比較每個(gè)AP和由查詢優(yōu)化器所選擇的查詢執(zhí)行計(jì)劃來(lái)確定優(yōu)化器效率指數(shù)(OEI),并基于相對(duì)于由查詢優(yōu)化器所選擇的查詢執(zhí)行計(jì)劃的性能提高或降低程度將AP分成各個(gè)性能桶。在另一實(shí)施例中,為了確定優(yōu)化器效率指數(shù),AP基于估計(jì)成本被排序,并基于查詢優(yōu)化器估計(jì)和實(shí)際的執(zhí)行行為被分成多個(gè)類。這樣,本發(fā)明的實(shí)施例提供測(cè)試由查詢優(yōu)化器所考慮的每個(gè)可能的執(zhí)行計(jì)劃的系統(tǒng)的方法,從而廣泛地測(cè)試與查詢優(yōu)化器關(guān)聯(lián)的數(shù)據(jù)庫(kù)查詢引擎的潛在誤差。盡管在本文中參照具體應(yīng)用的說(shuō)明性實(shí)施例描述本發(fā)明,但應(yīng)該理解本發(fā)明不局限于此。閱讀本文提供的教導(dǎo)的本領(lǐng)域技術(shù)人員會(huì)認(rèn)識(shí)到,在本發(fā)明的范圍和本發(fā)明特別有用的附加領(lǐng)域內(nèi),還具有許多附加修改、應(yīng)用和實(shí)施例。DBMS 概述本發(fā)明的實(shí)施例可在圖1中顯示的示例客戶機(jī)/服務(wù)器數(shù)據(jù)庫(kù)系統(tǒng)100中操作。 系統(tǒng)100包括通過(guò)網(wǎng)絡(luò)120與服務(wù)器130通信的一個(gè)或多個(gè)客戶機(jī)110。數(shù)據(jù)庫(kù)管理系統(tǒng) (DBMS) 140駐存在服務(wù)器130中。要注意的是,示例的客戶機(jī)/服務(wù)器數(shù)據(jù)庫(kù)系統(tǒng)100顯示于圖1中,這里的討論僅出于說(shuō)明的目的而不是限制的目的。本發(fā)明不局限于圖1的例子。操作中,客戶機(jī)110通過(guò)向DBMS 140發(fā)出SQL語(yǔ)句來(lái)將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)表150 的行155中或從行155中檢索數(shù)據(jù)。從客戶機(jī)110接收的SQL語(yǔ)句由DBMS 140的查詢引擎 160處理。SQL是眾所周知的,在許多公眾可得的文獻(xiàn)中有描述,包括由American National Standards Institute ( __ 示}^員)[iilKW American National Standard ANSI/ IS0/IEC 9075 :1992(美國(guó)國(guó)家標(biāo)準(zhǔn) ANSI/ISO/IEC 9075 1992)"Information Technology Database languages-SQL (信息技術(shù)-數(shù)據(jù)庫(kù)語(yǔ)文一SQL) ”,其通過(guò)引用被全文合并于此。
在一個(gè)實(shí)施例中,查詢引擎160包括解析器161,規(guī)范器163,編輯器165,查詢優(yōu)化器166,代碼生成器167,執(zhí)行單元169和存取方法170,現(xiàn)在對(duì)它們進(jìn)行描述。從客戶機(jī)110接收的SQL語(yǔ)句被傳送到解析器161,解析器161將語(yǔ)句轉(zhuǎn)換成查詢樹,查詢樹是一種以為系統(tǒng)方便選擇的格式表示的查詢組件的二進(jìn)制樹數(shù)據(jù)結(jié)構(gòu)。在此方面,解析器161采用眾所周知的解析方法(例如,遞歸下降分析)。查詢樹被規(guī)范器163規(guī)范化。規(guī)范化包括例如去掉冗余數(shù)據(jù)。另外,規(guī)范器163 可以執(zhí)行誤差檢查,如確認(rèn)出現(xiàn)在查詢中的表名字和列名字是有效的(例如可用且合成整體)。最后,規(guī)范器163還可以查尋任何存在的參照完整性約束,并將其加入到查詢中。在規(guī)范化之后,查詢樹被傳送到編輯器165,編輯器165包括查詢優(yōu)化器166和代碼生成器167。查詢優(yōu)化器166負(fù)責(zé)優(yōu)化查詢樹。在一個(gè)實(shí)施例中,查詢優(yōu)化器166執(zhí)行基于成本的分析以制定查詢執(zhí)行計(jì)劃。查詢優(yōu)化器166例如會(huì)選擇表的結(jié)合次序,并選擇相關(guān)索引145。查詢優(yōu)化器166因此執(zhí)行查詢分析,并從多個(gè)生成的執(zhí)行計(jì)劃中確定最佳執(zhí)行計(jì)劃,這里“最佳”是根據(jù)任何規(guī)定的標(biāo)準(zhǔn)判定的,這又導(dǎo)致在由執(zhí)行單元169進(jìn)行的查詢執(zhí)行中被調(diào)用的具體存取方法170。抽象計(jì)劃抽象計(jì)劃(AP)是查詢優(yōu)化器的語(yǔ)言接口,通過(guò)它查詢優(yōu)化器166給出期望查詢執(zhí)行計(jì)劃的描述。通常,AP表達(dá)提供在查詢優(yōu)化器166做出決定的層面上查詢執(zhí)行計(jì)劃的描述。作為純粹的說(shuō)明性例子,AP可以描述查詢執(zhí)行計(jì)劃,但允許優(yōu)化器166選擇查詢執(zhí)行計(jì)劃的合適的實(shí)現(xiàn)。AP語(yǔ)言還可以基于物理級(jí)關(guān)系代數(shù)被認(rèn)為是2-向用戶優(yōu)化器通信機(jī)制。AP表達(dá)既可以由查詢優(yōu)化器166使用以描述它選擇的計(jì)劃,也可以由用戶使用以指導(dǎo)查詢優(yōu)化器選擇。AP不是查詢的文本部分。示例的AP語(yǔ)言是SYBASE自適應(yīng)服務(wù)器企業(yè)(ASE)抽象計(jì)劃(AP)語(yǔ)言,其在本文中只是出于說(shuō)明目的并非限制目的被提及。AP在許多公眾可以獲得的文獻(xiàn)中有詳細(xì)描述, 諸如標(biāo)題為“Database System with Methodology for Reusing Cost Based Optimization Decisions (重新使用基于成本的優(yōu)化判定方法論的數(shù)據(jù)庫(kù)系統(tǒng))”的美國(guó)專利6,618,719, 其通過(guò)引用被全文合并于此。盡管下文是根據(jù)AP描述的,但應(yīng)認(rèn)識(shí)到本發(fā)明的實(shí)施例同樣可適用于包括但不局限于AP的所有形式的查詢執(zhí)行計(jì)劃。測(cè)試策略在一個(gè)實(shí)施例中,查詢優(yōu)化器166可以被配置成對(duì)于給定查詢保存(存儲(chǔ))所有可能的查詢執(zhí)行計(jì)劃,然后可以用來(lái)執(zhí)行該查詢。舉一個(gè)例子,此類操作可以通過(guò)與查詢優(yōu)化器166關(guān)聯(lián)的AP枚舉選項(xiàng)獲得。這樣,AP枚舉可有助于驗(yàn)證查詢執(zhí)行計(jì)劃的正確性。AP 枚舉還可以用來(lái)識(shí)別查詢優(yōu)化器166沒(méi)有選擇的較好性能計(jì)劃。 舉一個(gè)例子,假設(shè)有η個(gè)AP,即P1到Ρη。在一個(gè)實(shí)施例中,查詢優(yōu)化器166順序應(yīng)用這η個(gè)AP到每個(gè)查詢的執(zhí)行。這樣,由于查詢是基于每個(gè)AP (即P1到Pn)執(zhí)行的,用戶測(cè)試查詢引擎160有效地獲得好象查詢優(yōu)化器166不存在于查詢引擎160中的結(jié)果。這是因?yàn)椴樵儍?yōu)化器166會(huì)為某個(gè)查詢(例如抽象計(jì)劃pi)選擇單個(gè)的AP。但是,因?yàn)楸景l(fā)明的實(shí)施例允許查詢優(yōu)化器166考慮的所有AP被應(yīng)用于查詢的執(zhí)行,只要執(zhí)行對(duì)所有查詢不再局限于單個(gè)AP,測(cè)試引擎250的測(cè)試是獨(dú)立于查詢優(yōu)化器166進(jìn)行的。在一個(gè)實(shí)施例中, 不旨在限制本發(fā)明,AP的枚舉出現(xiàn)在查詢引擎160中,而逐個(gè)讀取AP并將其應(yīng)用到查詢的執(zhí)行的步驟是通過(guò)測(cè)試引擎250完成的。測(cè)試引擎250的操作將在下文進(jìn)一步描述。因此,使用AP枚舉選項(xiàng),查詢優(yōu)化器166可以配置為生成并保存所有抽象計(jì)劃(P1 到Pn)或其任何子集。否則,查詢優(yōu)化器166會(huì)忽視,不考慮許多AP,而對(duì)于給定查詢的執(zhí)行只選擇一個(gè)計(jì)劃。這樣,本發(fā)明的實(shí)施例提供測(cè)試由查詢優(yōu)化器考慮的多個(gè)可能的執(zhí)行計(jì)劃的系統(tǒng)方法,從而廣泛測(cè)試與查詢優(yōu)化器關(guān)聯(lián)的數(shù)據(jù)庫(kù)查詢引擎的潛在誤差。而且,例如,測(cè)試數(shù)據(jù)庫(kù)查詢引擎160的穩(wěn)定性可進(jìn)一步包括測(cè)試解析器161、優(yōu)化器166、存取方法170和與查詢引擎160關(guān)聯(lián)的其它任何模塊的穩(wěn)定性。這是因?yàn)槎褩8檿?huì)出現(xiàn)在這些模塊中的任何模塊,不正確的結(jié)果會(huì)由于潛在誤差出現(xiàn)在上述模塊中的任何一個(gè)中。另外,本發(fā)明的實(shí)施例除了允許測(cè)試優(yōu)化器166的穩(wěn)定性之外還允許測(cè)試優(yōu)化器166的效率。因此,穩(wěn)定性測(cè)試?yán)缈梢詰?yīng)用到與查詢引擎160關(guān)聯(lián)的所有模塊,但是效率測(cè)試是優(yōu)化器166的效率測(cè)試。如之前描述的,使用AP枚舉選項(xiàng),查詢優(yōu)化器166可以生成并保存所有抽象計(jì)劃的方式被配置。在一個(gè)實(shí)施例中,測(cè)試引擎250可使用在將AP應(yīng)用到查詢的執(zhí)行之后獲得的兩個(gè)不同的測(cè)試方法即排序方法和性能桶方法的信息。排序方法在此實(shí)施例中,測(cè)試引擎250基于估計(jì)成本對(duì)查詢計(jì)劃(AP)排序。舉一個(gè)例子, 但不旨在限制本發(fā)明,估計(jì)成本可以基于使用AP的查詢的優(yōu)化器成本估計(jì),查詢的資源消耗,邏輯1/0,物理I/O或其組合。同樣,這些參數(shù)是由優(yōu)化器166估計(jì)的。而且,例如,排序包括基于所選擇的參數(shù)以升序排序所有AP。測(cè)試引擎250可以將這些個(gè)別的AP分成多個(gè)類。在一個(gè)實(shí)施例中,不旨在限制本發(fā)明,測(cè)試引擎250可以將各個(gè)AP分成三類。這些示例性的類圖示于表1中。表 權(quán)利要求
1.一種測(cè)試數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMQ中的查詢引擎的方法,包括a.保存由查詢優(yōu)化器考慮的所有查詢執(zhí)行計(jì)劃;b.使用所述查詢執(zhí)行計(jì)劃中的每一個(gè)查詢執(zhí)行計(jì)劃來(lái)執(zhí)行查詢;c.基于所述執(zhí)行確定所述查詢執(zhí)行計(jì)劃的性能;d.基于所述性能對(duì)所述查詢執(zhí)行計(jì)劃分類;和e.通過(guò)基于所述分類計(jì)算優(yōu)化器效率指數(shù)(OEI)來(lái)確定所述查詢優(yōu)化器的效率。
2.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括 將所述查詢執(zhí)行計(jì)劃保存為抽象計(jì)劃(AP)。
3.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括 檢查所述步驟b執(zhí)行中的不正確結(jié)果和堆棧跟蹤。
4.根據(jù)權(quán)利要求1所述的方法,其中步驟c包括將所述查詢執(zhí)行計(jì)劃的所述性能與由所述查詢優(yōu)化器選擇的默認(rèn)查詢執(zhí)行計(jì)劃進(jìn)行比較。
5.根據(jù)權(quán)利要求4所述的方法,其中步驟c進(jìn)一步包括基于關(guān)于所述默認(rèn)查詢執(zhí)行計(jì)劃的性能將所述查詢執(zhí)行計(jì)劃分成多個(gè)性能類。
6.根據(jù)權(quán)利要求5所述的方法,其中所述分類步驟包括如果所述查詢執(zhí)行計(jì)劃表現(xiàn)得比所述默認(rèn)查詢執(zhí)行計(jì)劃好,則將查詢執(zhí)行計(jì)劃分成正性能類;和如果所述查詢執(zhí)行計(jì)劃表現(xiàn)得比所述默認(rèn)查詢執(zhí)行計(jì)劃差,則將所述查詢執(zhí)行計(jì)劃分成負(fù)性能類。
7.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括 基于估計(jì)成本對(duì)所述查詢執(zhí)行計(jì)劃排序;和基于實(shí)際的執(zhí)行行為將所述查詢執(zhí)行計(jì)劃分成多個(gè)類。
8.根據(jù)權(quán)利要求7所述的方法,其中所述實(shí)際執(zhí)行行為基于與所述查詢執(zhí)行計(jì)劃關(guān)聯(lián)的執(zhí)行時(shí)間、所述查詢執(zhí)行計(jì)劃的資源消耗和與所述查詢執(zhí)行計(jì)劃關(guān)聯(lián)的邏輯I/O和物理 I/O。
9.根據(jù)權(quán)利要求7所述的方法,其中所述估計(jì)成本基于與所述查詢執(zhí)行計(jì)劃關(guān)聯(lián)的邏輯I/O和物理I/O的組合。
10.根據(jù)權(quán)利要求1所述的方法,其中步驟a包括通過(guò)存儲(chǔ)到一個(gè)或多個(gè)跟蹤文件作為多個(gè)抽象計(jì)劃來(lái)保存所述查詢執(zhí)行計(jì)劃。
11.一種用于測(cè)試數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)中的查詢引擎的系統(tǒng),包括 查詢優(yōu)化器,其被配置成保存由所述查詢優(yōu)化器考慮的所有查詢執(zhí)行計(jì)劃; 執(zhí)行引擎,其被配置成使用所述查詢執(zhí)行計(jì)劃執(zhí)行查詢;和測(cè)試引擎,其被配置成基于所述執(zhí)行確定所述查詢執(zhí)行計(jì)劃的性能。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述測(cè)試引擎基于所述性能對(duì)所述查詢執(zhí)行計(jì)劃進(jìn)行分類。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述測(cè)試引擎基于多個(gè)分類的查詢執(zhí)行計(jì)劃確定所述查詢優(yōu)化器的效率。
14.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述測(cè)試引擎檢查在所述查詢的所述執(zhí)行期間生成的不正確結(jié)果。
15.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述測(cè)試引擎將所述查詢執(zhí)行計(jì)劃的所述性能和由所述查詢優(yōu)化器選擇的默認(rèn)查詢執(zhí)行計(jì)劃進(jìn)行比較。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中所述測(cè)試引擎基于關(guān)于所述默認(rèn)查詢執(zhí)行計(jì)劃的性能將所述查詢執(zhí)行計(jì)劃分成多個(gè)性能類。
17.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述測(cè)試引擎基于估計(jì)成本對(duì)所述查詢執(zhí)行計(jì)劃排序,并基于所述估計(jì)成本和實(shí)際的執(zhí)行行為將所述查詢執(zhí)行計(jì)劃分成多個(gè)類。
18.根據(jù)權(quán)利要求17所述的系統(tǒng),其中所述估計(jì)成本基于與所述查詢執(zhí)行計(jì)劃關(guān)聯(lián)的執(zhí)行時(shí)間、所述查詢執(zhí)行計(jì)劃的資源消耗和與所述查詢執(zhí)行計(jì)劃關(guān)聯(lián)的邏輯I/O和物理I/ O0
19.根據(jù)權(quán)利要求17所述的系統(tǒng),其中所述估計(jì)成本基于與所述查詢執(zhí)行計(jì)劃關(guān)聯(lián)的邏輯I/O和物理I/O的組合。
20.一種在其中存儲(chǔ)有控制邏輯的計(jì)算機(jī)程序產(chǎn)品,所述控制邏輯使處理器能夠測(cè)試數(shù)據(jù)庫(kù)管理系統(tǒng)中的查詢引擎,所述控制邏輯包括用于使處理器保存多個(gè)查詢執(zhí)行計(jì)劃的第一計(jì)算機(jī)可讀程序代碼裝置; 用于使處理器能夠使用所述查詢執(zhí)行計(jì)劃執(zhí)行查詢的第二計(jì)算機(jī)可讀程序代碼裝置;用于使處理器能夠確定所述查詢執(zhí)行計(jì)劃的性能的第三計(jì)算機(jī)可讀程序代碼裝置; 用于使處理器能夠基于所述性能對(duì)所述查詢執(zhí)行計(jì)劃進(jìn)行分類的第四計(jì)算機(jī)可讀程序代碼裝置;和用于使處理器能夠通過(guò)基于所述分類計(jì)算優(yōu)化器效率指數(shù)(OEI)來(lái)確定至少所述查詢優(yōu)化器的效率的第五計(jì)算機(jī)可讀程序代碼裝置。
全文摘要
本文描述了用于測(cè)試數(shù)據(jù)庫(kù)查詢引擎的穩(wěn)定性和效率的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品。在一個(gè)實(shí)施例中,由查詢優(yōu)化器考慮的所有可能的查詢執(zhí)行計(jì)劃以抽象計(jì)劃(AP)的形式被保存。然后給每個(gè)AP依次提供查詢以測(cè)試堆棧跟蹤和在查詢執(zhí)行的過(guò)程中可能出現(xiàn)的不正確結(jié)果。一個(gè)實(shí)施例包括通過(guò)比較每個(gè)AP和由查詢優(yōu)化器選擇的查詢執(zhí)行計(jì)劃來(lái)確定優(yōu)化器效率指數(shù)(OEI),基于相對(duì)于由查詢優(yōu)化器選擇的查詢執(zhí)行計(jì)劃性能的提高或降低程度,將AP分成各個(gè)性能桶(performance bucket)。在另一實(shí)施例中,為了確定優(yōu)化器效率指數(shù),AP基于估計(jì)成本被排序,并基于查詢優(yōu)化器估計(jì)和實(shí)際的執(zhí)行行為被分成多個(gè)類。
文檔編號(hào)G06F17/00GK102362276SQ201080013747
公開日2012年2月22日 申請(qǐng)日期2010年3月25日 優(yōu)先權(quán)日2009年4月1日
發(fā)明者桑托什·達(dá)圖·彭達(dá)普, 瑟德普托·瑞樂(lè)·喬杜里 申請(qǐng)人:賽貝斯股份有限公司