專利名稱::優(yōu)化數據庫顧問程序的配置參數的方法及裝置的制作方法
技術領域:
:本發(fā)明涉及數據庫的優(yōu)化技術,具體地說,涉及對數據庫顧問程序(advisor)的配置參數進行優(yōu)化的方法及裝置。
背景技術:
:最近十幾年,為了解決在數據庫管理和性能優(yōu)化上日益增加的復雜度,數據庫軟件產品提供商已在提供自優(yōu)化和自主計算解決方案方面獲得了顯著的進步?,F(xiàn)有的數據庫軟件產品中提供了多個數據庫顧問程序,例如,優(yōu)化顧問程序、升級顧問程序、訪問顧問程序等,以幫助用戶自動設計數據庫并進行數據庫的性能調優(yōu)?!愕?,這些數據庫顧問程序都具有很多配置參數,而且合適地設置這些配置參數對于最終生成的數據庫的性能具有重要的作用。通常,數據庫顧問程序的所有配置參數都提供有缺省值,并且這些缺省值以適用于大范圍的數據庫應用程序為目的。下面簡要介紹現(xiàn)有的主要數據庫優(yōu)化顧問程序。微軟公司自1996年啟動了關于自動數據庫優(yōu)化和管理的AutoAdmin項目,目前,微軟SQLServer2005提供了數據庫引擎優(yōu)化顧問程序(DTA)以用于綜合選擇索引、物化視圖(materializedviews)和分區(qū)。關于數據庫引擎優(yōu)化顧問程序的詳細說明可參考以下文獻1.S.Chaudhuri禾口V.Narasayya所著的AutoAdminWhat-IfIndexAnalysisUtility,InProceedingofSIGM0D,美國華盛頓州西雅圖,1998年6月1-4日;2.S.Agrawal,S.Chaudhuri禾口V.Narasayya所著的AutomatedSelectionofMaterializedViewsandIndexesinSQLDatabase,InProceedingofVLDB,埃及開羅,2000年9月10-14日;3.S.Agrawal,S.Chaudhuri,LKollar,A.Marathe,V.Narasayya禾口M.Syamala所著的DatabaseTimingAdvisorforMicrosoftSQLServer2005,InProceedingsofVLDB,加拿大多倫多,2004年8月31日至9月3日;4.S.Chaudhuri,V.Narasayya禾口B.Yang所著的IntegratingVerticalandHorizontalPartitioningintoAutomatedPhysicalDatabaseDesign,InProceedingofSIGM0D,法國巴黎,2004年6月13-18日。Oracle公司提供的SQL性能優(yōu)化是作為優(yōu)化器的擴展。Oracle10g提供了自動選擇索引和物化視圖的工具,詳情可參考以下文獻1.B.Dageville,D.Das,K.Dias,K.Yagoub,M.Zait禾口M.Ziauddin所著的AutomaticSQLTuninginOracle10g,InProceedingsofVLDB,加拿大多倫多,2004年8月31日至9月3日;2.K.Dias,M.Ramacher,U.Shaft,V.Venkataramamani禾口G.Wood所著的AutomaticPerformanceDiagnosisandTuninginOracle,InProceedingsofCIDR,美國力口州Asilomar,2005年1月4-7日;3.B.Dageville禾口K.Dias所著的Oracle'sSelf-TuningArchitectureandSolutions,IEEEDataEngineeringBulletin,29(3):24-31,2006。在上述的顧問程序中都提供有許多配置參數,通常也提供這些配置參數的缺省值/初始值。然而,如前所述,這些缺省值/初始值通常被設置成適用于大范圍的數據庫應用程序,因而缺乏靈活性。而且,缺省值/初始值通常是在開發(fā)數據庫軟件產品的過程中基于內置模型和試探法或者基于經驗設置的,沒有統(tǒng)計上的證明表示這些缺省值/初始值是適當的。當用戶使用數據庫顧問程序建立數據庫時,會面臨顧問程序的配置參數太多的困境。數據庫管理員會花費很多時間和精力來調整這些參數,并且通常數據庫管理員根據自身的經驗來選擇配置參數的值或者直接遵照缺省值/初始值,這樣的話,如果選擇不當或者缺省值/初始值設置不當,則不能獲得好的數據庫性能。目前尚未發(fā)現(xiàn)現(xiàn)有技術中存在基于統(tǒng)計方法的評估和優(yōu)化數據庫顧問程序的配置參數的技術方案。
發(fā)明內容本發(fā)明正是基于上述的技術問題而提出的,其目的在于提供一種優(yōu)化數據庫顧問程序的配置參數的方法及裝置,其能夠以統(tǒng)計的方法確定配置參數對于數據庫性能的影響,并提供配置參數的優(yōu)化建議。根據本發(fā)明的一個方面,提供一種優(yōu)化數據庫顧問程序的配置參數的方法,其包括使用DOE實驗設計方法設計所述數據庫顧問程序的多個測試實驗,其中,每一個所述測試實驗對應所述配置參數的一組取值;執(zhí)行所述多個測試實驗的每一個,以生成相應的推薦數據庫;測量每一個所述推薦數據庫的性能,以獲得該推薦數據庫的測量結果;以及分析所有所述推薦數據庫的測量結果,以確定對所述數據庫的影響大的配置參數。根據本發(fā)明的另一個方面,提供一種優(yōu)化數據庫顧問程序的配置參數的裝置,其包括測試實驗設計模塊,用于使用DOE實驗設計方法設計所述數據庫顧問程序的多個測試實驗,其中,每一個所述測試實驗對應所述配置參數的一組取值;測試實驗執(zhí)行模塊,用于執(zhí)行所述多個測試實驗的每一個,以生成相應的推薦數據庫;性能測量模塊,用于測量每一個所述推薦數據庫的性能,以獲得該推薦數據庫的測量結果;以及分析模塊,用于分析所有所述推薦數據庫的測量結果,以確定對所述數據庫的影響大的配置參數。圖1是根據本發(fā)明的一個實施例的優(yōu)化數據庫顧問程序的配置參數的方法的流程圖;圖2是數據庫顧問程序的一個例子的示意圖;圖3是圖1所示的實施例中設計多個測試實驗的步驟的流程圖;圖4是圖1所示的實施例中執(zhí)行多個測試實驗的步驟的流程圖;圖5是圖1所示的實施例中分析測量結果的步驟的流程圖;圖6是根據本發(fā)明的一個實施例的優(yōu)化數據庫顧問程序的配置參數的裝置的方框圖。具體實施例方式相信通過以下結合附圖對本發(fā)明的具體實施例的詳細描述,本發(fā)明的上述和其它目的、特征和優(yōu)點將更加明顯。在詳細描述本發(fā)明的具體實施例之前,先簡要介紹幾個概念。實驗設計(DesignofExperiments,簡稱DOE)是研究如何制定適當的實驗方案以便對實驗數據進行有效的統(tǒng)計分析的數學理論與方法,其采用多個實驗的方式來以最小的努力搜集測試系統(tǒng)的最多的信息。關于DOE的詳情,可參考D.C.Montgonery所著的DesignandAnalysisofExperiments(6thEdition),Wiley,2005年。對于軟件測試,傳統(tǒng)的基于DOE的統(tǒng)計方法是正交設計(0rthogonalDesign)方法,其能夠節(jié)約大量的測試時間和成本。在正交設計方法中,使用正交數組來選擇測試組合和配置。然而,正交數組非常嚴格,在很多情況下,對于某些因子、水平等不能使用正交數組,因此,引入了覆蓋數組(CoveringArray)的概念。關于覆蓋數組的詳情,可參考以下文獻l)M.B.Cohen,C.J.Colbo證,P.B.Gibbons禾口W.B.Mugridge所著的Constructingtestsuitesforinteractiontesting,InProceedingofthelnternationalConferenceonSoftwareEngineering(ICSE2003),俄勒岡州波特蘭,2003年5月;2)M.B.Cohen,C.J.Colbo證禾口A.C.H丄ing所著的Augmentingsimulatedannealingtobuildinteractiontestsuites,InProceedingsofthel4thIEEEInternationalSymposiumonSoftwareReliabilityEngineering(ISSRE2003),DenverC0,2003年11月;3)M.B.Cohen所著的DesigningTestSuitesforSoftwareInteractionTesting,Ph.D.Dissertation,奧克蘭大學,2004年。下面僅介紹混合水平覆蓋數組(MixedLevelCoveringArray)的定義。混合水平覆蓋數組可表示為MCA(N;t,k,(Vl,...,Vk)),其是關于v個符號的NXk數組,其中v-I^,Vi,該數組具有以下特性1)每一列i(1《i《k)只包含來自Vi的集合Si的元素;2)每個NXt子數組的行覆蓋來自t個列的值的所有t個組元(t-tuple)至少一次?;旌纤礁采w數組也可以表示為MCA(N;t,O;',...,w"),其中k二2^i;,v二Z^fiWi°例如,MCA(12;2,4,(4,3,3,2))也可寫作MCA(12;2,413221)。下面參考附圖,詳細說明本發(fā)明的具體實施例。圖1是根據本發(fā)明的一個實施例的優(yōu)化數據庫顧問程序的配置參數的方法的流程圖。下面根據附圖,對本實施例進行說明。在本實施例中,假設數據庫顧問程序I具有k個配置參數...,Ck}。如圖1所示,在步驟S101,測量數據庫的初始性能,并將所測量的性能數據作為數據庫的基線數據(baselinedata)。在本步驟中,數據庫顧問程序I的各個配置參數{Q,...,Ck}被無約束地設置,然后對數據庫應用一個查詢工作負載(queryworkload),數據庫執(zhí)行該查詢工作負載,從而生成相應的性能數據,作為基線數據。此時,數據庫顧問程序和數據庫被認為處于基線狀態(tài)。在本實施例中,數據庫的性能數據可以是下述的任意一個或多個整個查詢工作負載的總消耗時間、整個查詢工作負載的總CPU時間、每個查詢的消耗時間和每個查詢的CPU時間。查詢工作負載是一組相關的查詢,S卩,SQLSELECT或UPDATE語句。查詢工作負載可從諸如TPC-H的測試包中選擇,或者根據要求生成,或者從實際的客戶環(huán)境中收集。圖2示出了一個數據庫顧問程序的例子的示意圖。從圖2可以看出,該顧問程序具有很多配置參數,例如"Numberofindexesallowedpertable,,、"Lowbenefitthreshold"等。所謂"無約束地設置",就是將配置參數的值選擇為"無限制"。在步驟SllO,使用DOE實驗設計方法設計數據庫顧問程序I的多個測試實驗,其中,每一個測試實驗對應配置參數{&,...,Ck}的一組取值。圖3示出了步驟S110的處理流程圖。如圖3所示,在步驟S301,設置數據庫顧問程序I的每一個配置參數&(1《i《k)的所有水平以及每一個水平的值。這可由使用者根據經驗或者前面所得到的基線數據進行設置。下面以數據庫顧問程序I是IBM優(yōu)化專家工作負載索引顧問程序(IBMOptimizationExpertWorkloadIndexAdvisorWIA)為例進行說明。在該顧問程序中,有l(wèi)l個配置參數,如表l所示表1<table>tableseeoriginaldocumentpage8</column></row><table><table>tableseeoriginaldocumentpage9</column></row><table>其中,參數C01表示為新推薦的索引分配的磁盤空間量;參數C02表示對于每個表所創(chuàng)建索引的最大允許數量(包括WIA推薦的索引和已有的索引);參數C03表示產生索引候選的策略,該策略控制WIA推薦索引的情況;典型的索引生成策略包括l)Comprehensive(全面的),其產生有助匹配和顯示索引掃描以及索引只讀的索引;2)Conditional(有條件的),其產生有助匹配和顯示索引掃描的索引,并且有條件地產生有助索引只讀的索引;3)Intermediate(中等的),其產生有助匹配和顯示索引掃描的索引;4)Minimal(最小的),其產生只有助匹配索引掃描的索引;5)Customized(自定義的),其根據特定的重要閾值產生索引以考慮更加優(yōu)化重要的查詢;小于低的重要閾值的查詢將使用基本策略,在兩個閾值之間的查詢將使用中等策略,大于高的重要閾值的查詢將使用全面的策略;參數C04表示用于產生索引推薦的策略,推薦策略包括1)僅是效益Benefitonly(積極的),其基于對工作負載所生成的候選索引的整體估計效益進行推薦,而不管索引使用的磁盤空間;2)效益成本比(保守的),其基于對工作負載所生成的候選索引的整體估計效益與索引所使用的磁盤空間的比較進行推薦;參數C05表示候選索引中關鍵字的最大允許數量;參數C06表示查詢重要閾值,其用于將工作負載中的SQL語句分成分別具有低、中、高重要性的不同的組;參數C07表示查詢效益閾值,其用于將推薦索引候選識別成相應的重要性組;參數C08表示查詢權重策略,WIA根據不同的查詢權重策略將優(yōu)先權值應用于工作負載中的每個SQL查詢,查詢權重基于運行時信息(如果運行時信息可得),諸如消耗時間和CPU時間,或者基于執(zhí)行數(如果運行時信息不可得);參數C09表示所有推薦候選索引的集群比;參數C10表示基于引用完整性產生外鍵索引;參數Cll用于規(guī)定收集統(tǒng)計信息的策略,由于WIA依賴統(tǒng)計信息,因此在運行WIA之前,需要收集相關的統(tǒng)計信息。表2示出了表1中的每一個配置參數Ci的水平以及每個水平的值Vi。表2<table>tableseeoriginaldocumentpage10</column></row><table><table>tableseeoriginaldocumentpage11</column></row><table>在設置了每個配置參數的水平及每個水平的值后,在步驟S305,根據所設置的配置參數的水平,選擇合適的覆蓋數組。如前所述,覆蓋數組表示為MCA(N;t,k,(Vl,...,Vk)),其中N表示實驗次數,t通常選擇2,表示結對測試。通常,合適的覆蓋數組可從已有的已知數量結果中獲得。對于上述的WIA的例子,配置參數和水平的信息可表示為(11,(3,3,5,2,3,3,3,3,3,2,3))或者(5^2",那么選擇覆蓋數組MCA(15;2,513822)用于測試實驗設計。然后,在步驟S310,基于在步驟S301中設置的每一個配置參數的每一個水平的值和在步驟S305中獲得的覆蓋數組,生成數據庫顧問程序I的多個測試實驗。表3示出了用于上述WIA的測試實驗。表3<table>tableseeoriginaldocumentpage12</column></row><table><table>tableseeoriginaldocumentpage13</column></row><table>其中,每一行代表一個測試實驗,其對應一組配置參數的值?,F(xiàn)在返回圖1,在步驟S120,執(zhí)行通過步驟S110設計的多個測試實驗的每一個,以生成相應的推薦數據庫。也就是說,在數據庫顧問程序I上依次執(zhí)行每一個測試實驗,從而獲得與測試實驗的次數相同的推薦數據庫。圖4示出了執(zhí)行多個測試實驗的步驟S120的流程圖。如圖4所示,對于第一個測試實驗,在步驟S401,根據該測試實驗所對應的配置參數的一組值,運行數據庫顧問程序I,從而獲得數據庫顧問程序推薦。也就是說,將數據庫顧問程序I的配置參數&設置為第一組實驗值,然后運行數據庫顧問程序I。該步驟可以使用應用數據接口(API)來實現(xiàn)。數據庫顧問程序推薦可以是用于收集統(tǒng)計信息的RUNSTATS命令,或者用于創(chuàng)建索引的CREATEINDEXDDLs,或者用于創(chuàng)建視圖的CREATEVIEWDDLs,或者用于創(chuàng)建MQTs的MQT候選DDLs。然后,在步驟S405,將在步驟S401中得到的數據庫顧問程序推薦應用于數據庫,從而獲得推薦數據庫。然后,對于第二個測試實驗直到最后一個測試實驗,重復執(zhí)行步驟S401和S405,以獲得相應的推薦數據庫。在步驟S120中,在每次執(zhí)行一個測試實驗之前,數據庫顧問程序和數據庫應處于基線狀態(tài),以確保每次測試實驗都是基于相同的數據庫狀態(tài)。返回圖l,在步驟S130,測量每一個推薦數據庫的性能,以獲得該推薦數據庫的測量結果。在該步驟中,使用與步驟S101相同的查詢工作負載,并將其應用于每一個推薦數據庫,從而得到每一個推薦數據庫的與性能相關的測量結果。在本實施例中,測量結果可以采用測量推薦數據庫的性能而得到的性能數據,也可以采用測量推薦數據庫的性能而得到的性能數據與在步驟101中測量的基線數據的差。然后,在步驟S140,分析在步驟S130中得到的所有推薦數據庫的測量結果,以確定對數據庫的影響大的配置參數,那么這些配置參數是數據庫顧問程序I的重要的配置參數。圖5示出了分析測量結果的步驟S140的流程圖,其中,圖5(a)是使用極差分析的處理的流程圖,圖5(b)是使用方差分析的處理的流程圖。如圖5(a)所示,當獲得了所有推薦數據庫的測量結果后,在步驟S501,對于每一個配置參數,計算該配置參數的每一個水平所對應的測量結果的平均值,該平均值可以表明該水平對于該配置參數的貢獻。然后,在步驟S505,計算對于該配置參數所計算的平均值中最大的平均值與最小的平均值之間的差,作為該配置參數的極差。然后,在步驟S510,根據所計算的各個配置參數的極差,對這些配置參數進行排序,其中,極差最大的配置參數被確定為對數據庫的影響最大。對于上述的WIA例子,表4示出了測量結果的分析結果。表4<table>tableseeoriginaldocumentpage14</column></row><table><table>tableseeoriginaldocumentpage15</column></row><table>其中,羅馬字母I至V表示配置參數的水平,R表示極差。那么,在表4中,例如第16行第2列的元素"1363.98"表示配置參數C03的第一個水平"5"所對應的測量結果的平均值。從表4中可以看出,配置參數C03的極差最大,那么,配置參數C03對于數據庫的影響也最大,被排在第1位,排在第2和第3位的分別是配置參數Cll和C05。在另一個實施例中,如圖5(b)所示,在步驟S501',對于每一個配置參數,計算該配置參數的每一個水平所對應的測量結果的總和,接著在步驟S505',根據公式(l),計算該配置參數的偏差平方和。<formula>formulaseeoriginaldocumentpage15</formula>(1)其中,&表示第i個配置參數,Vi表示配置參數&的水平的個數,Yfi表示配置參數&的水平j所對應的測量結果的和,lf表示包含配置參數&的水平j的測試實驗的個數,N表示測試實驗的總個數,Sci表示配置參數&的偏差平方和。然后,在步驟S510',根據公式(2),計算該配置參數的方差<formula>formulaseeoriginaldocumentpage15</formula>(2)然后,在步驟S515',根據在步驟S510'所計算的各個配置參數的方差,對配置參數進行排序,其中,方差最大的配置參數被確定為對數據庫的影響最大?!愕?,方差分析基于Fisher原理。使用F測試方法,方差反映測試數據的偏離程度,從而能夠用于分析每個配置參數對于測量結果的影響。根據上述分析的結果,可以推薦配置參數的優(yōu)化值。在上述的WIA的例子中,排在前3位的配置參數分別是C03INDEX_GENERATI0N_P0LICY,C11STATS_C0LLECTI0N_P0LICY和C05MAX_KEY_PER_TABLE。配置參數C03控制WIA如何產生中等的索引候選,即僅僅有助于索引匹配,或者有助于索引顯示,或者有助于索引只讀。因此,該配置參數是非常重要的參數,其對WIA的輸出有貢獻,并在本質上確定推薦的優(yōu)劣。對于配置參數Cll,基本的統(tǒng)計基本上確定WIA中成本模型和What-If功能的輸入參數。最終的索引候選選擇主要基于通過成本模型和What-If計算的結果,因此,該配置參數也是重要的參數。配置參數C05限定推薦索引中關鍵字的最大數量,顯然,索引中的關鍵字越多,該索引被選擇以有助于索引只讀的可能性越大,這避免了掃描磁盤,并顯著減少1/0開銷。因此,該配置參數也是重要的參數。通過以上描述可以看出,本實施例的優(yōu)化數據庫顧問程序的配置參數的方法使用基于統(tǒng)計的D0E實驗設計方法以設計和選擇高效的測試實驗,并使用覆蓋數組以獲得相對少的測試實驗,通過分析測試實驗的結果對配置參數進行排序,以確定重要的配置參數,從而能夠自動地評估數據庫顧問程序的配置參數,同時提供配置參數的優(yōu)化建議,極大方便了配置參數的缺省值/初始值的適當設置。另外,本實施例的方法還能夠節(jié)約數據庫管理員設置配置參數的時間和精力。在同一個發(fā)明構思下,圖6是根據本發(fā)明的一個實施例的優(yōu)化數據庫顧問程序的配置參數的裝置的方框圖。下面結合附圖,詳細說明本實施例,其中與前面實施例相同的部分,適當省略其說明。如圖6所示,本實施例的優(yōu)化數據庫顧問程序的配置參數的裝置600包括測試實驗設計模塊601,其使用D0E實驗設計方法設計數據庫顧問程序的多個測試實驗,其中,每一個測試實驗對應配置參數的一組取值;測試實驗執(zhí)行模塊602,其執(zhí)行測試實驗設計模塊601所設計的多個測試實驗的每一個,以生成相應的推薦數據庫;性能測量模塊603,其測量每一個推薦數據庫的性能,以獲得該推薦數據庫的測量結果;以及分析模塊604,其分析所有推薦數據庫的測量結果,以確定對數據庫的影響大的配置參數。在本實施例中,對于待測試的數據庫顧問程序,首先,測試實驗設計模塊601使用DOE實驗設計方法來設計測試實驗。具體地,在測試實驗設計模塊601中,由設置單元6011設置數據庫顧問程序的每一個配置參數的所有水平以及每一個水平的值,接著覆蓋數組選擇單元6012根據設置單元6011所設置的配置參數的水平,選擇合適的覆蓋數組。設置單元6011所設置的水平及其值以及覆蓋數組選擇單元6012所選擇的覆蓋數組被提供給測試實驗生成單元6013,由測試實驗生成單元6013生成數據庫顧問程序的多個測試實驗。然后,測試實驗設計模塊601所設計的測試實驗被提供給測試實驗執(zhí)行模塊602執(zhí)行,生成推薦數據庫。對于每一個測試實驗,在測試實驗執(zhí)行模塊602中,數據庫顧問程序運行單元6021基于該測試實驗中的配置參數的取值,運行數據庫顧問程序以獲得數據庫顧問程序推薦,并提供給推薦數據庫生成單元6022。推薦數據庫生成單元6022將數據庫顧問程序推薦應用于數據庫,從而生成推薦數據庫。然后,性能測量模塊603使用查詢工作負載測量每一個推薦數據庫的性能,以獲得該推薦數據庫的測量結果。在本實施例中,測量結果采用測量推薦數據庫的性能而獲得的性能數據。如前所述,性能數據可以是整個查詢工作負載的總消耗時間、整個查詢工作負載的總CPU時間、每個查詢的消耗時間和每個查詢的CPU時間中的任意一個或多個。通過性能測量模塊603獲得的測量結果被送到分析模塊604,由分析模塊604分析所有推薦數據庫的測量結果,以確定對數據庫的影響大的配置參數。在一個實施例中,在分析模塊604中,平均值計算單元6041對于每一個配置參數,計算該配置參數的每一個水平所對應的測量結果的平均值,然后極差計算單元6042計算平均值計算單元6041所計算的平均值中最大的平均值與最小的平均值之間的差,作為該配置參數的極差,并由第一排序單元6043根據所計算的各個配置參數的極差,對配置參數進行排序,其中,極差最大的配置參數被確定為對數據庫的影響最大。在另一個實施例中,在分析模塊604中,首先總和計算單元對于每一個配置參數,計算該配置參數的每一個水平所對應的測量結果的總和,然后偏差平方和計算單元根據公式(1)計算該配置參數的偏差平方和Sq=|]((")2/lf)_(I]")2/N,(1)j=lj=l其中,Ci表示第i個配置參數,Vi表示配置參數Ci的水平的個數,Yfi表示配置參數&的水平j所對應的所述測量結果的和,^表示包含配置參數Ci的水平j的測試實驗的個數,N表示測試實驗的總個數,Sc,表示配置參數Ci的偏差平方和。所計算的偏差平方和被提供給方差計算單元,用于根據公式(2)計算該配置參數的方差工=sCi/(Vi_l),(2)然后,第二排序單元根據所計算的各個配置參數的方差,對配置參數進行排序,其中,方差最大的配置參數被確定為對數據庫的影響最大。進一步地,性能測量裝置603還預先測量數據庫的初始性能數據,作為數據庫的基線數據。在這種情況下,測量結果可以采用測量推薦數據庫的性能而得到的性能數據與基線數據的差。應當指出,本實施例的優(yōu)化數據庫顧問程序的配置參數的裝置600在操作上可以實現(xiàn)圖1、圖3、圖4和圖5所示的優(yōu)化數據庫顧問程序的配置參數的方法。應當指出,上述實施例中的優(yōu)化數據庫顧問程序的配置參數的裝置及其各個組成部分可以由諸如超大規(guī)模集成電路或門陣列、諸如邏輯芯片、晶體管等的半導體、或者諸如現(xiàn)場可編程門陣列、可編程邏輯設備等的可編程硬件設備的硬件電路實現(xiàn),也可以用由各種類型的處理器執(zhí)行的軟件實現(xiàn),也可以由上述硬件電路和軟件的結合實現(xiàn)。以上雖然通過一些示例性的實施例詳細描述了本發(fā)明的優(yōu)化數據庫顧問程序的配置參數的方法和裝置,但是以上這些實施例并不是窮舉的,本領域技術人員可以在本發(fā)明的精神和范圍內實現(xiàn)各種變化和修改。因此,本發(fā)明并不限于這些實施例,本發(fā)明的范圍僅由所附的權利要求限定'權利要求一種優(yōu)化數據庫顧問程序的配置參數的方法,包括使用DOE實驗設計方法設計所述數據庫顧問程序的多個測試實驗,其中,每一個所述測試實驗對應所述配置參數的一組取值;執(zhí)行所述多個測試實驗的每一個,以生成相應的推薦數據庫;測量每一個所述推薦數據庫的性能,以獲得該推薦數據庫的測量結果;以及分析所有所述推薦數據庫的測量結果,以確定對所述數據庫的影響大的配置參數。2.根據權利要求1所述的方法,其中,所述設計多個測試實驗的步驟包括設置所述數據庫顧問程序的每一個配置參數的所有水平以及所述所有水平的每一個的值;根據所設置的配置參數的水平,選擇合適的覆蓋數組;以及基于所述每一個配置參數的所述水平的每一個的值和所述覆蓋數組,生成所述數據庫顧問程序的多個測試實驗。3.根據權利要求1或2所述的方法,其中,所述執(zhí)行所述多個測試實驗的每一個的步驟包括對于所述多個測試實驗的每一個,基于所對應的所述配置參數的一組取值,運行所述數據庫顧問程序以獲得數據庫顧問程序推薦;以及將所述數據庫顧問程序推薦應用于所述數據庫,以生成推薦數據庫。4.根據權利要求2或3所述的方法,其中,所述分析所述測量結果的步驟包括對于所述每一個配置參數,計算該配置參數的每一個水平所對應的所述測量結果的平均值;計算所述平均值中最大的平均值與最小的平均值之間的差,作為該配置參數的極差;以及根據所計算的各個配置參數的極差,對所述配置參數進行排序,其中,所述極差最大的配置參數被確定為對所述數據庫的影響最大。5.根據權利要求2或3所述的方法,其中,所述分析所述測量結果的步驟包括對于所述每一個配置參數,計算該配置參數的每一個水平所對應的所述測量結果的總和;根據下述公式,計算該配置參數的偏差平方和SC4((")2《')-(IX')"N,<formula>formulaseeoriginaldocumentpage2</formula>其中,&表示第i個配置參數,Vi表示配置參數&的水平的個數,Yfi表示配置參數&的水平j所對應的所述測量結果的和,l」e'表示包含配置參數&的水平j的測試實驗的個數,N表示測試實驗的總個數,Sci表示配置參數&的偏差平方和;根據下述公式,計算該配置參數的方差<formula>formulaseeoriginaldocumentpage2</formula>以及根據所計算的各個配置參數的方差,對所述配置參數進行排序,其中,所述方差最大的配置參數被確定為對所述數據庫的影響最大。6.根據權利要求1至5任意一項所述的方法,其中,所述測量結果是通過測量所述推薦數據庫的性能而獲得的性能數據。7.根據權利要求1至5任意一項所述的方法,還包括在所述設計多個測試實驗的步驟之前,測量所述數據庫的初始性能,并將所測得的性能數據作為所述數據庫的基線數據。8.根據權利要求7所述的方法,其中,所述測量結果是通過測量所述推薦數據庫的性能而獲得的性能數據與所述基線數據的差。9.根據權利要求6至8任意一項所述的方法,其中,所述數據庫的性能數據是整個查詢工作負載的總消耗時間、整個查詢工作負載的總CPU時間、每個查詢的消耗時間和每個查詢的CPU時間中的任意一個或多個。10.—種優(yōu)化數據庫顧問程序的配置參數的裝置,包括測試實驗設計模塊,用于使用DOE實驗設計方法設計所述數據庫顧問程序的多個測試實驗,其中,每一個所述測試實驗對應所述配置參數的一組取值;測試實驗執(zhí)行模塊,用于執(zhí)行所述多個測試實驗的每一個,以生成相應的推薦數據庫;性能測量模塊,用于測量每一個所述推薦數據庫的性能,以獲得該推薦數據庫的測量結果;以及分析模塊,用于分析所有所述推薦數據庫的測量結果,以確定對所述數據庫的影響大的配置參數。11.根據權利要求IO所述的裝置,其中,所述測試實驗設計模塊包括設置單元,用于設置所述數據庫顧問程序的每一個配置參數的所有水平以及所述所有水平的每一個的值;覆蓋數組選擇單元,用于根據所設置的配置參數的水平,選擇合適的覆蓋數組;以及測試實驗生成單元,用于基于所述每一個配置參數的所述水平的每一個的值和所述覆蓋數組,生成所述數據庫顧問程序的多個測試實驗。12.根據權利要求10或11所述的裝置,其中,所述測試實驗執(zhí)行模塊包括數據庫顧問程序運行單元,用于對于所述多個測試實驗的每一個,基于所對應的所述配置參數的一組取值,運行所述數據庫顧問程序以獲得數據庫顧問程序推薦;以及推薦數據庫生成單元,用于將所述數據庫顧問程序推薦應用于所述數據庫,以生成推薦數據庫。13.根據權利要求11或12所述的裝置,其中,所述分析模塊包括平均值計算單元,用于對于所述每一個配置參數,計算該配置參數的每一個水平所對應的所述測量結果的平均值;極差計算單元,用于計算所述平均值中最大的平均值與最小的平均值之間的差,作為該配置參數的極差;以及第一排序單元,用于根據所計算的各個配置參數的極差,對所述配置參數進行排序,其中,所述極差最大的配置參數被確定為對所述數據庫的影響最大。14.根據權利要求11或12所述的裝置,其中,所述分析模塊包括總和計算單元,用于對于所述每一個配置參數,計算該配置參數的每一個水平所對應的所述測量結果的總和;偏差平方和計算單元,用于根據下述公式,計算該配置參數的偏差平方和<formula>formulaseeoriginaldocumentpage4</formula>其中,&表示第i個配置參數,Vi表示配置參數&的水平的個數,Yf'表示配置參數&的水平j所對應的所述測量結果的和,lf表示包含配置參數Ci的水平j的測試實驗的個數,N表示測試實驗的總個數,Sc,表示配置參數&的偏差平方和;方差計算單元,用于根據下述公式,計算該配置參數的方差<formula>formulaseeoriginaldocumentpage4</formula>以及第二排序單元,用于根據所計算的各個配置參數的方差,對所述配置參數進行排序,其中,所述方差最大的配置參數被確定為對所述數據庫的影響最大。15.根據權利要求10至14任意一項所述的裝置,其中,所述測量結果是通過測量所述推薦數據庫的性能而得到的性能數據。16.根據權利要求10至14任意一項所述的裝置,其中,所述性能測量裝置還測量所述數據庫的初始性能,并將所測的性能數據作為所述數據庫的基線數據。17.根據權利要求16所述的裝置,其中,所述測量結果是通過測量所述推薦數據庫的性能而得到的性能數據與所述基線數據的差。18.根據權利要求15至17任意一項所述的裝置,其中,所述數據庫的性能數據是整個查詢工作負載的總消耗時間、整個查詢工作負載的總CPU時間、每個查詢的消耗時間和每個查詢的CPU時間中的任意一個或多個。全文摘要本發(fā)明提供一種優(yōu)化數據庫顧問程序的配置參數的方法,其包括使用DOE實驗設計方法設計所述數據庫顧問程序的多個測試實驗,其中,每一個所述測試實驗對應所述配置參數的一組取值;執(zhí)行所述多個測試實驗的每一個,以生成相應的推薦數據庫;測量每一個所述推薦數據庫的性能,以獲得該推薦數據庫的測量結果;以及分析所有所述推薦數據庫的測量結果,以確定對所述數據庫的影響大的配置參數。本發(fā)明的方法能夠自動地評估數據庫顧問程序的配置參數,同時提供配置參數的優(yōu)化建議,極大方便了配置參數的缺省值/初始值的適當設置。本發(fā)明還提供了一種優(yōu)化數據庫顧問程序的配置參數的裝置。文檔編號G06F17/30GK101727455SQ200810174919公開日2010年6月9日申請日期2008年10月24日優(yōu)先權日2008年10月24日發(fā)明者劉長浩,徐康,武碩申請人:國際商業(yè)機器公司