优化数据库顾问程序的配置参数的方法及装置的制作方法

文档序号:6467862阅读:195来源:国知局

专利名称::优化数据库顾问程序的配置参数的方法及装置的制作方法
技术领域
:本发明涉及数据库的优化技术,具体地说,涉及对数据库顾问程序(advisor)的配置参数进行优化的方法及装置。
背景技术
:最近十几年,为了解决在数据库管理和性能优化上日益增加的复杂度,数据库软件产品提供商已在提供自优化和自主计算解决方案方面获得了显著的进步。现有的数据库软件产品中提供了多个数据库顾问程序,例如,优化顾问程序、升级顾问程序、访问顾问程序等,以帮助用户自动设计数据库并进行数据库的性能调优。—般地,这些数据库顾问程序都具有很多配置参数,而且合适地设置这些配置参数对于最终生成的数据库的性能具有重要的作用。通常,数据库顾问程序的所有配置参数都提供有缺省值,并且这些缺省值以适用于大范围的数据库应用程序为目的。下面简要介绍现有的主要数据库优化顾问程序。微软公司自1996年启动了关于自动数据库优化和管理的AutoAdmin项目,目前,微软SQLServer2005提供了数据库引擎优化顾问程序(DTA)以用于综合选择索引、物化视图(materializedviews)和分区。关于数据库引擎优化顾问程序的详细说明可参考以下文献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性能优化是作为优化器的扩展。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。在上述的顾问程序中都提供有许多配置参数,通常也提供这些配置参数的缺省值/初始值。然而,如前所述,这些缺省值/初始值通常被设置成适用于大范围的数据库应用程序,因而缺乏灵活性。而且,缺省值/初始值通常是在开发数据库软件产品的过程中基于内置模型和试探法或者基于经验设置的,没有统计上的证明表示这些缺省值/初始值是适当的。当用户使用数据库顾问程序建立数据库时,会面临顾问程序的配置参数太多的困境。数据库管理员会花费很多时间和精力来调整这些参数,并且通常数据库管理员根据自身的经验来选择配置参数的值或者直接遵照缺省值/初始值,这样的话,如果选择不当或者缺省值/初始值设置不当,则不能获得好的数据库性能。目前尚未发现现有技术中存在基于统计方法的评估和优化数据库顾问程序的配置参数的技术方案。
发明内容本发明正是基于上述的技术问题而提出的,其目的在于提供一种优化数据库顾问程序的配置参数的方法及装置,其能够以统计的方法确定配置参数对于数据库性能的影响,并提供配置参数的优化建议。根据本发明的一个方面,提供一种优化数据库顾问程序的配置参数的方法,其包括使用DOE实验设计方法设计所述数据库顾问程序的多个测试实验,其中,每一个所述测试实验对应所述配置参数的一组取值;执行所述多个测试实验的每一个,以生成相应的推荐数据库;测量每一个所述推荐数据库的性能,以获得该推荐数据库的测量结果;以及分析所有所述推荐数据库的测量结果,以确定对所述数据库的影响大的配置参数。根据本发明的另一个方面,提供一种优化数据库顾问程序的配置参数的装置,其包括测试实验设计模块,用于使用DOE实验设计方法设计所述数据库顾问程序的多个测试实验,其中,每一个所述测试实验对应所述配置参数的一组取值;测试实验执行模块,用于执行所述多个测试实验的每一个,以生成相应的推荐数据库;性能测量模块,用于测量每一个所述推荐数据库的性能,以获得该推荐数据库的测量结果;以及分析模块,用于分析所有所述推荐数据库的测量结果,以确定对所述数据库的影响大的配置参数。图1是根据本发明的一个实施例的优化数据库顾问程序的配置参数的方法的流程图;图2是数据库顾问程序的一个例子的示意图;图3是图1所示的实施例中设计多个测试实验的步骤的流程图;图4是图1所示的实施例中执行多个测试实验的步骤的流程图;图5是图1所示的实施例中分析测量结果的步骤的流程图;图6是根据本发明的一个实施例的优化数据库顾问程序的配置参数的装置的方框图。具体实施例方式相信通过以下结合附图对本发明的具体实施例的详细描述,本发明的上述和其它目的、特征和优点将更加明显。在详细描述本发明的具体实施例之前,先简要介绍几个概念。实验设计(DesignofExperiments,简称DOE)是研究如何制定适当的实验方案以便对实验数据进行有效的统计分析的数学理论与方法,其采用多个实验的方式来以最小的努力搜集测试系统的最多的信息。关于DOE的详情,可参考D.C.Montgonery所著的DesignandAnalysisofExperiments(6thEdition),Wiley,2005年。对于软件测试,传统的基于DOE的统计方法是正交设计(0rthogonalDesign)方法,其能够节约大量的测试时间和成本。在正交设计方法中,使用正交数组来选择测试组合和配置。然而,正交数组非常严格,在很多情况下,对于某些因子、水平等不能使用正交数组,因此,引入了覆盖数组(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)至少一次。混合水平覆盖数组也可以表示为MCA(N;t,O;',...,w"),其中k二2^i;,v二Z^fiWi°例如,MCA(12;2,4,(4,3,3,2))也可写作MCA(12;2,413221)。下面参考附图,详细说明本发明的具体实施例。图1是根据本发明的一个实施例的优化数据库顾问程序的配置参数的方法的流程图。下面根据附图,对本实施例进行说明。在本实施例中,假设数据库顾问程序I具有k个配置参数...,Ck}。如图1所示,在步骤S101,测量数据库的初始性能,并将所测量的性能数据作为数据库的基线数据(baselinedata)。在本步骤中,数据库顾问程序I的各个配置参数{Q,...,Ck}被无约束地设置,然后对数据库应用一个查询工作负载(queryworkload),数据库执行该查询工作负载,从而生成相应的性能数据,作为基线数据。此时,数据库顾问程序和数据库被认为处于基线状态。在本实施例中,数据库的性能数据可以是下述的任意一个或多个整个查询工作负载的总消耗时间、整个查询工作负载的总CPU时间、每个查询的消耗时间和每个查询的CPU时间。查询工作负载是一组相关的查询,S卩,SQLSELECT或UPDATE语句。查询工作负载可从诸如TPC-H的测试包中选择,或者根据要求生成,或者从实际的客户环境中收集。图2示出了一个数据库顾问程序的例子的示意图。从图2可以看出,该顾问程序具有很多配置参数,例如"Numberofindexesallowedpertable,,、"Lowbenefitthreshold"等。所谓"无约束地设置",就是将配置参数的值选择为"无限制"。在步骤SllO,使用DOE实验设计方法设计数据库顾问程序I的多个测试实验,其中,每一个测试实验对应配置参数{&,...,Ck}的一组取值。图3示出了步骤S110的处理流程图。如图3所示,在步骤S301,设置数据库顾问程序I的每一个配置参数&(1《i《k)的所有水平以及每一个水平的值。这可由使用者根据经验或者前面所得到的基线数据进行设置。下面以数据库顾问程序I是IBM优化专家工作负载索引顾问程序(IBMOptimizationExpertWorkloadIndexAdvisorWIA)为例进行说明。在该顾问程序中,有ll个配置参数,如表l所示表1<table>tableseeoriginaldocumentpage8</column></row><table><table>tableseeoriginaldocumentpage9</column></row><table>其中,参数C01表示为新推荐的索引分配的磁盘空间量;参数C02表示对于每个表所创建索引的最大允许数量(包括WIA推荐的索引和已有的索引);参数C03表示产生索引候选的策略,该策略控制WIA推荐索引的情况;典型的索引生成策略包括l)Comprehensive(全面的),其产生有助匹配和显示索引扫描以及索引只读的索引;2)Conditional(有条件的),其产生有助匹配和显示索引扫描的索引,并且有条件地产生有助索引只读的索引;3)Intermediate(中等的),其产生有助匹配和显示索引扫描的索引;4)Minimal(最小的),其产生只有助匹配索引扫描的索引;5)Customized(自定义的),其根据特定的重要阈值产生索引以考虑更加优化重要的查询;小于低的重要阈值的查询将使用基本策略,在两个阈值之间的查询将使用中等策略,大于高的重要阈值的查询将使用全面的策略;参数C04表示用于产生索引推荐的策略,推荐策略包括1)仅是效益Benefitonly(积极的),其基于对工作负载所生成的候选索引的整体估计效益进行推荐,而不管索引使用的磁盘空间;2)效益成本比(保守的),其基于对工作负载所生成的候选索引的整体估计效益与索引所使用的磁盘空间的比较进行推荐;参数C05表示候选索引中关键字的最大允许数量;参数C06表示查询重要阈值,其用于将工作负载中的SQL语句分成分别具有低、中、高重要性的不同的组;参数C07表示查询效益阈值,其用于将推荐索引候选识别成相应的重要性组;参数C08表示查询权重策略,WIA根据不同的查询权重策略将优先权值应用于工作负载中的每个SQL查询,查询权重基于运行时信息(如果运行时信息可得),诸如消耗时间和CPU时间,或者基于执行数(如果运行时信息不可得);参数C09表示所有推荐候选索引的集群比;参数C10表示基于引用完整性产生外键索引;参数Cll用于规定收集统计信息的策略,由于WIA依赖统计信息,因此在运行WIA之前,需要收集相关的统计信息。表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>其中,每一行代表一个测试实验,其对应一组配置参数的值。现在返回图1,在步骤S120,执行通过步骤S110设计的多个测试实验的每一个,以生成相应的推荐数据库。也就是说,在数据库顾问程序I上依次执行每一个测试实验,从而获得与测试实验的次数相同的推荐数据库。图4示出了执行多个测试实验的步骤S120的流程图。如图4所示,对于第一个测试实验,在步骤S401,根据该测试实验所对应的配置参数的一组值,运行数据库顾问程序I,从而获得数据库顾问程序推荐。也就是说,将数据库顾问程序I的配置参数&设置为第一组实验值,然后运行数据库顾问程序I。该步骤可以使用应用数据接口(API)来实现。数据库顾问程序推荐可以是用于收集统计信息的RUNSTATS命令,或者用于创建索引的CREATEINDEXDDLs,或者用于创建视图的CREATEVIEWDDLs,或者用于创建MQTs的MQT候选DDLs。然后,在步骤S405,将在步骤S401中得到的数据库顾问程序推荐应用于数据库,从而获得推荐数据库。然后,对于第二个测试实验直到最后一个测试实验,重复执行步骤S401和S405,以获得相应的推荐数据库。在步骤S120中,在每次执行一个测试实验之前,数据库顾问程序和数据库应处于基线状态,以确保每次测试实验都是基于相同的数据库状态。返回图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测试方法,方差反映测试数据的偏离程度,从而能够用于分析每个配置参数对于测量结果的影响。根据上述分析的结果,可以推荐配置参数的优化值。在上述的WIA的例子中,排在前3位的配置参数分别是C03INDEX_GENERATI0N_P0LICY,C11STATS_C0LLECTI0N_P0LICY和C05MAX_KEY_PER_TABLE。配置参数C03控制WIA如何产生中等的索引候选,即仅仅有助于索引匹配,或者有助于索引显示,或者有助于索引只读。因此,该配置参数是非常重要的参数,其对WIA的输出有贡献,并在本质上确定推荐的优劣。对于配置参数Cll,基本的统计基本上确定WIA中成本模型和What-If功能的输入参数。最终的索引候选选择主要基于通过成本模型和What-If计算的结果,因此,该配置参数也是重要的参数。配置参数C05限定推荐索引中关键字的最大数量,显然,索引中的关键字越多,该索引被选择以有助于索引只读的可能性越大,这避免了扫描磁盘,并显著减少1/0开销。因此,该配置参数也是重要的参数。通过以上描述可以看出,本实施例的优化数据库顾问程序的配置参数的方法使用基于统计的D0E实验设计方法以设计和选择高效的测试实验,并使用覆盖数组以获得相对少的测试实验,通过分析测试实验的结果对配置参数进行排序,以确定重要的配置参数,从而能够自动地评估数据库顾问程序的配置参数,同时提供配置参数的优化建议,极大方便了配置参数的缺省值/初始值的适当设置。另外,本实施例的方法还能够节约数据库管理员设置配置参数的时间和精力。在同一个发明构思下,图6是根据本发明的一个实施例的优化数据库顾问程序的配置参数的装置的方框图。下面结合附图,详细说明本实施例,其中与前面实施例相同的部分,适当省略其说明。如图6所示,本实施例的优化数据库顾问程序的配置参数的装置600包括测试实验设计模块601,其使用D0E实验设计方法设计数据库顾问程序的多个测试实验,其中,每一个测试实验对应配置参数的一组取值;测试实验执行模块602,其执行测试实验设计模块601所设计的多个测试实验的每一个,以生成相应的推荐数据库;性能测量模块603,其测量每一个推荐数据库的性能,以获得该推荐数据库的测量结果;以及分析模块604,其分析所有推荐数据库的测量结果,以确定对数据库的影响大的配置参数。在本实施例中,对于待测试的数据库顾问程序,首先,测试实验设计模块601使用DOE实验设计方法来设计测试实验。具体地,在测试实验设计模块601中,由设置单元6011设置数据库顾问程序的每一个配置参数的所有水平以及每一个水平的值,接着覆盖数组选择单元6012根据设置单元6011所设置的配置参数的水平,选择合适的覆盖数组。设置单元6011所设置的水平及其值以及覆盖数组选择单元6012所选择的覆盖数组被提供给测试实验生成单元6013,由测试实验生成单元6013生成数据库顾问程序的多个测试实验。然后,测试实验设计模块601所设计的测试实验被提供给测试实验执行模块602执行,生成推荐数据库。对于每一个测试实验,在测试实验执行模块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还预先测量数据库的初始性能数据,作为数据库的基线数据。在这种情况下,测量结果可以采用测量推荐数据库的性能而得到的性能数据与基线数据的差。应当指出,本实施例的优化数据库顾问程序的配置参数的装置600在操作上可以实现图1、图3、图4和图5所示的优化数据库顾问程序的配置参数的方法。应当指出,上述实施例中的优化数据库顾问程序的配置参数的装置及其各个组成部分可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合实现。以上虽然通过一些示例性的实施例详细描述了本发明的优化数据库顾问程序的配置参数的方法和装置,但是以上这些实施例并不是穷举的,本领域技术人员可以在本发明的精神和范围内实现各种变化和修改。因此,本发明并不限于这些实施例,本发明的范围仅由所附的权利要求限定'权利要求一种优化数据库顾问程序的配置参数的方法,包括使用DOE实验设计方法设计所述数据库顾问程序的多个测试实验,其中,每一个所述测试实验对应所述配置参数的一组取值;执行所述多个测试实验的每一个,以生成相应的推荐数据库;测量每一个所述推荐数据库的性能,以获得该推荐数据库的测量结果;以及分析所有所述推荐数据库的测量结果,以确定对所述数据库的影响大的配置参数。2.根据权利要求1所述的方法,其中,所述设计多个测试实验的步骤包括设置所述数据库顾问程序的每一个配置参数的所有水平以及所述所有水平的每一个的值;根据所设置的配置参数的水平,选择合适的覆盖数组;以及基于所述每一个配置参数的所述水平的每一个的值和所述覆盖数组,生成所述数据库顾问程序的多个测试实验。3.根据权利要求1或2所述的方法,其中,所述执行所述多个测试实验的每一个的步骤包括对于所述多个测试实验的每一个,基于所对应的所述配置参数的一组取值,运行所述数据库顾问程序以获得数据库顾问程序推荐;以及将所述数据库顾问程序推荐应用于所述数据库,以生成推荐数据库。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.—种优化数据库顾问程序的配置参数的装置,包括测试实验设计模块,用于使用DOE实验设计方法设计所述数据库顾问程序的多个测试实验,其中,每一个所述测试实验对应所述配置参数的一组取值;测试实验执行模块,用于执行所述多个测试实验的每一个,以生成相应的推荐数据库;性能测量模块,用于测量每一个所述推荐数据库的性能,以获得该推荐数据库的测量结果;以及分析模块,用于分析所有所述推荐数据库的测量结果,以确定对所述数据库的影响大的配置参数。11.根据权利要求IO所述的装置,其中,所述测试实验设计模块包括设置单元,用于设置所述数据库顾问程序的每一个配置参数的所有水平以及所述所有水平的每一个的值;覆盖数组选择单元,用于根据所设置的配置参数的水平,选择合适的覆盖数组;以及测试实验生成单元,用于基于所述每一个配置参数的所述水平的每一个的值和所述覆盖数组,生成所述数据库顾问程序的多个测试实验。12.根据权利要求10或11所述的装置,其中,所述测试实验执行模块包括数据库顾问程序运行单元,用于对于所述多个测试实验的每一个,基于所对应的所述配置参数的一组取值,运行所述数据库顾问程序以获得数据库顾问程序推荐;以及推荐数据库生成单元,用于将所述数据库顾问程序推荐应用于所述数据库,以生成推荐数据库。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时间中的任意一个或多个。全文摘要本发明提供一种优化数据库顾问程序的配置参数的方法,其包括使用DOE实验设计方法设计所述数据库顾问程序的多个测试实验,其中,每一个所述测试实验对应所述配置参数的一组取值;执行所述多个测试实验的每一个,以生成相应的推荐数据库;测量每一个所述推荐数据库的性能,以获得该推荐数据库的测量结果;以及分析所有所述推荐数据库的测量结果,以确定对所述数据库的影响大的配置参数。本发明的方法能够自动地评估数据库顾问程序的配置参数,同时提供配置参数的优化建议,极大方便了配置参数的缺省值/初始值的适当设置。本发明还提供了一种优化数据库顾问程序的配置参数的装置。文档编号G06F17/30GK101727455SQ200810174919公开日2010年6月9日申请日期2008年10月24日优先权日2008年10月24日发明者刘长浩,徐康,武硕申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1