CN101727455A - 优化数据库顾问程序的配置参数的方法及装置 - Google Patents
优化数据库顾问程序的配置参数的方法及装置 Download PDFInfo
- Publication number
- CN101727455A CN101727455A CN200810174919A CN200810174919A CN101727455A CN 101727455 A CN101727455 A CN 101727455A CN 200810174919 A CN200810174919 A CN 200810174919A CN 200810174919 A CN200810174919 A CN 200810174919A CN 101727455 A CN101727455 A CN 101727455A
- Authority
- CN
- China
- Prior art keywords
- database
- msub
- mrow
- configuration parameter
- configuration parameters
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000012360 testing method Methods 0.000 claims abstract description 89
- 238000002474 experimental method Methods 0.000 claims abstract description 78
- 238000013461 design Methods 0.000 claims abstract description 27
- 238000005259 measurement Methods 0.000 claims description 48
- 238000004458 analytical method Methods 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000012163 sequencing technique Methods 0.000 claims 2
- 238000005457 optimization Methods 0.000 abstract description 13
- 238000013400 design of experiment Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000007619 statistical method Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000000540 analysis of variance Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 241000282612 Hylobates muelleri Species 0.000 description 1
- RJKFOVLPORLFTN-LEKSSAKUSA-N Progesterone Chemical compound C1CC2=CC(=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H](C(=O)C)[C@@]1(C)CC2 RJKFOVLPORLFTN-LEKSSAKUSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000002567 autonomic effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013401 experimental design Methods 0.000 description 1
- XHEFDIBZLJXQHF-UHFFFAOYSA-N fisetin Chemical compound C=1C(O)=CC=C(C(C=2O)=O)C=1OC=2C1=CC=C(O)C(O)=C1 XHEFDIBZLJXQHF-UHFFFAOYSA-N 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 239000002023 wood Substances 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种优化数据库顾问程序的配置参数的方法,其包括:使用DOE实验设计方法设计所述数据库顾问程序的多个测试实验,其中,每一个所述测试实验对应所述配置参数的一组取值;执行所述多个测试实验的每一个,以生成相应的推荐数据库;测量每一个所述推荐数据库的性能,以获得该推荐数据库的测量结果;以及分析所有所述推荐数据库的测量结果,以确定对所述数据库的影响大的配置参数。本发明的方法能够自动地评估数据库顾问程序的配置参数,同时提供配置参数的优化建议,极大方便了配置参数的缺省值/初始值的适当设置。本发明还提供了一种优化数据库顾问程序的配置参数的装置。
Description
技术领域
本发明涉及数据库的优化技术,具体地说,涉及对数据库顾问程序(advisor)的配置参数进行优化的方法及装置。
背景技术
最近十几年,为了解决在数据库管理和性能优化上日益增加的复杂度,数据库软件产品提供商已在提供自优化和自主计算解决方案方面获得了显著的进步。现有的数据库软件产品中提供了多个数据库顾问程序,例如,优化顾问程序、升级顾问程序、访问顾问程序等,以帮助用户自动设计数据库并进行数据库的性能调优。
一般地,这些数据库顾问程序都具有很多配置参数,而且合适地设置这些配置参数对于最终生成的数据库的性能具有重要的作用。通常,数据库顾问程序的所有配置参数都提供有缺省值,并且这些缺省值以适用于大范围的数据库应用程序为目的。
下面简要介绍现有的主要数据库优化顾问程序。
微软公司自1996年启动了关于自动数据库优化和管理的AutoAdmin项目,目前,微软SQL Server 2005提供了数据库引擎优化顾问程序(DTA)以用于综合选择索引、物化视图(materialized views)和分区。关于数据库引擎优化顾问程序的详细说明可参考以下文献:
1.S.Chaudhuri和V.Narasayya所著的AutoAdmin What-If IndexAnalysis Utility,In Proceeding of SIGMOD,美国华盛顿州西雅图,1998年6月1-4日;
2.S.Agrawal,S.Chaudhuri和V.Narasayya所著的AutomatedSelection of Materialized Views and Indexes in SQL Data base,InProceeding of VLDB,埃及开罗,2000年9月10-14日;
3.S.Agrawal,S.Chaudhuri,L.Kollar,A.Marathe,V.Narasayya和M.Syamala所著的Database Tuning Advisor for Microsoft SQL Server2005,In Proceedings of VLDB,加拿大多伦多,2004年8月31日至9月3日;
4.S.Chaudhuri,V.Narasayya和B.Yang所著的Integrating Verticaland Horizontal Partitioning into Automated Physical Database Design,InProceeding of SIGMOD,法国巴黎,2004年6月13-18日。
Oracle公司提供的SQL性能优化是作为优化器的扩展。Oracle 10g提供了自动选择索引和物化视图的工具,详情可参考以下文献:
1.B.Dageville,D.Das,K.Dias,K.Yagoub,M.Zait和M.Ziauddin所著的Automatic SQL Tuning in Oracle 10g,In Proceedings of VLDB,加拿大多伦多,2004年8月31日至9月3日;
2.K.Dias,M.Ramacher,U.Shaft,V.Venkataramamani和G.Wood所著的Automatic Performance Diagnosis and Tuning in Oracle,InProceedings of CIDR,美国加州Asilomar,2005年1月4-7日;
3.B.Dageville和K.Dias所著的Oracle’s Self-Tuning Architectureand Solutions,IEEE Data Engineering Bulletin,29(3):24-31,2006。
在上述的顾问程序中都提供有许多配置参数,通常也提供这些配置参数的缺省值/初始值。然而,如前所述,这些缺省值/初始值通常被设置成适用于大范围的数据库应用程序,因而缺乏灵活性。而且,缺省值/初始值通常是在开发数据库软件产品的过程中基于内置模型和试探法或者基于经验设置的,没有统计上的证明表示这些缺省值/初始值是适当的。
当用户使用数据库顾问程序建立数据库时,会面临顾问程序的配置参数太多的困境。数据库管理员会花费很多时间和精力来调整这些参数,并且通常数据库管理员根据自身的经验来选择配置参数的值或者直接遵照缺省值/初始值,这样的话,如果选择不当或者缺省值/初始值设置不当,则不能获得好的数据库性能。
目前尚未发现现有技术中存在基于统计方法的评估和优化数据库顾问程序的配置参数的技术方案。
发明内容
本发明正是基于上述的技术问题而提出的,其目的在于提供一种优化数据库顾问程序的配置参数的方法及装置,其能够以统计的方法确定配置参数对于数据库性能的影响,并提供配置参数的优化建议。
根据本发明的一个方面,提供一种优化数据库顾问程序的配置参数的方法,其包括:使用DOE实验设计方法设计所述数据库顾问程序的多个测试实验,其中,每一个所述测试实验对应所述配置参数的一组取值;执行所述多个测试实验的每一个,以生成相应的推荐数据库;测量每一个所述推荐数据库的性能,以获得该推荐数据库的测量结果;以及分析所有所述推荐数据库的测量结果,以确定对所述数据库的影响大的配置参数。
根据本发明的另一个方面,提供一种优化数据库顾问程序的配置参数的装置,其包括:测试实验设计模块,用于使用DOE实验设计方法设计所述数据库顾问程序的多个测试实验,其中,每一个所述测试实验对应所述配置参数的一组取值;测试实验执行模块,用于执行所述多个测试实验的每一个,以生成相应的推荐数据库;性能测量模块,用于测量每一个所述推荐数据库的性能,以获得该推荐数据库的测量结果;以及分析模块,用于分析所有所述推荐数据库的测量结果,以确定对所述数据库的影响大的配置参数。
附图说明
图1是根据本发明的一个实施例的优化数据库顾问程序的配置参数的方法的流程图;
图2是数据库顾问程序的一个例子的示意图;
图3是图1所示的实施例中设计多个测试实验的步骤的流程图;
图4是图1所示的实施例中执行多个测试实验的步骤的流程图;
图5是图1所示的实施例中分析测量结果的步骤的流程图;
图6是根据本发明的一个实施例的优化数据库顾问程序的配置参数的装置的方框图。
具体实施方式
相信通过以下结合附图对本发明的具体实施例的详细描述,本发明的上述和其它目的、特征和优点将更加明显。
在详细描述本发明的具体实施例之前,先简要介绍几个概念。
实验设计(Design of Experiments,简称DOE)是研究如何制定适当的实验方案以便对实验数据进行有效的统计分析的数学理论与方法,其采用多个实验的方式来以最小的努力搜集测试系统的最多的信息。关于DOE的详情,可参考D.C.Montgonery所著的Design and Analysis ofExperiments(6th Edition),Wiley,2005年。
对于软件测试,传统的基于DOE的统计方法是正交设计(OrthogonalDesign)方法,其能够节约大量的测试时间和成本。在正交设计方法中,使用正交数组来选择测试组合和配置。然而,正交数组非常严格,在很多情况下,对于某些因子、水平等不能使用正交数组,因此,引入了覆盖数组(Covering Array)的概念。关于覆盖数组的详情,可参考以下文献:
1)M.B.Cohen,C.J.Colbourn,P.B.Gibbons和W.B.Mugridge所著的Constructing test suites for interaction testing,In Proceeding of theInternational Conference on Software Engineering(ICSE 2003),俄勒冈州波特兰,2003年5月;
2)M.B.Cohen,C.J.Colbourn和A.C.H.Ling所著的Augmentingsimulated annealing to build interaction test suites,In Proceedings of the14th IEEE International Symposium on Software Reliability Engineering(ISSRE 2003),Denver CO,2003年11月;
3)M.B.Cohen所著的Designing Test Suites for Software InteractionTesting,Ph.D.Dissertation,奥克兰大学,2004年。
下面仅介绍混合水平覆盖数组(Mixed Level Covering Array)的定义。混合水平覆盖数组可表示为MCA(N;t,k,(v1,...,vk)),其是关于v个符号的N×k数组,其中该数组具有以下特性:
1)每一列i(1≤i≤k)只包含来自vi的集合Si的元素;
2)每个N×t子数组的行覆盖来自t个列的值的所有t个组元(t-tuple)至少一次。
下面参考附图,详细说明本发明的具体实施例。
图1是根据本发明的一个实施例的优化数据库顾问程序的配置参数的方法的流程图。下面根据附图,对本实施例进行说明。
在本实施例中,假设数据库顾问程序I具有k个配置参数{C1,...,Ck}。
如图1所示,在步骤S101,测量数据库的初始性能,并将所测量的性能数据作为数据库的基线数据(baseline data)。在本步骤中,数据库顾问程序I的各个配置参数{C1,...,Ck}被无约束地设置,然后对数据库应用一个查询工作负载(query workload),数据库执行该查询工作负载,从而生成相应的性能数据,作为基线数据。此时,数据库顾问程序和数据库被认为处于基线状态。
在本实施例中,数据库的性能数据可以是下述的任意一个或多个:整个查询工作负载的总消耗时间、整个查询工作负载的总CPU时间、每个查询的消耗时间和每个查询的CPU时间。
查询工作负载是一组相关的查询,即,SQL SELECT或UPDATE语句。查询工作负载可从诸如TPC-H的测试包中选择,或者根据要求生成,或者从实际的客户环境中收集。
图2示出了一个数据库顾问程序的例子的示意图。从图2可以看出,该顾问程序具有很多配置参数,例如“Number of indexes allowed pertable”、“Low benefit threshold”等。所谓“无约束地设置”,就是将配置参数的值选择为“无限制”。
在步骤S110,使用DOE实验设计方法设计数据库顾问程序I的多个测试实验,其中,每一个测试实验对应配置参数{C1,...,Ck}的一组取值。图3示出了步骤S110的处理流程图。
如图3所示,在步骤S301,设置数据库顾问程序I的每一个配置参数Ci(1≤i≤k)的所有水平以及每一个水平的值。这可由使用者根据经验或者前面所得到的基线数据进行设置。
下面以数据库顾问程序I是IBM优化专家工作负载索引顾问程序(IBM Optimization Expert Workload Index Advisor WIA)为例进行说明。在该顾问程序中,有11个配置参数,如表1所示:
表1
# | 配置参数名称 | 类型 |
C01 | MAX_INDEX_DISK_SPACE | 数据型 |
C02 | MAX_INDEX_PER_TABLE | 数据型 |
C03 | INDEX_GENERATION_POLICY | 离散型 |
C04 | INDEX_RECOMMEND_POLICY | 离散型 |
C05 | MAX_KEY_PER_INDEX | 数据型 |
C06 | QUERY_SIGNIFICANCE_THRESHOLD | 数据型 |
C07 | QUERY_BENEFIT_THRESHOLD | 数据型 |
C08 | QUERY_WEIGHT_POLICY | 离散型 |
# | 配置参数名称 | 类型 |
C09 | INDEX_CLUSTERRATIO_POLICY | 数据型 |
C10 | REFERENTIAL_INTEGRITY | 离散型 |
C11 | STATS_COLLECTION_POLICY | 离散型 |
其中,
参数C01表示为新推荐的索引分配的磁盘空间量;
参数C02表示对于每个表所创建索引的最大允许数量(包括WIA推荐的索引和已有的索引);
参数C03表示产生索引候选的策略,该策略控制WIA推荐索引的情况;典型的索引生成策略包括:1)Comprehensive(全面的),其产生有助匹配和显示索引扫描以及索引只读的索引;2)Conditional(有条件的),其产生有助匹配和显示索引扫描的索引,并且有条件地产生有助索引只读的索引;3)Intermediate(中等的),其产生有助匹配和显示索引扫描的索引;4)Minimal(最小的),其产生只有助匹配索引扫描的索引;5)Customized(自定义的),其根据特定的重要阈值产生索引以考虑更加优化重要的查询;小于低的重要阈值的查询将使用基本策略,在两个阈值之间的查询将使用中等策略,大于高的重要阈值的查询将使用全面的策略;
参数C04表示用于产生索引推荐的策略,推荐策略包括:1)仅是效益Benefit only(积极的),其基于对工作负载所生成的候选索引的整体估计效益进行推荐,而不管索引使用的磁盘空间;2)效益成本比(保守的),其基于对工作负载所生成的候选索引的整体估计效益与索引所使用的磁盘空间的比较进行推荐;
参数C05表示候选索引中关键字的最大允许数量;
参数C06表示查询重要阈值,其用于将工作负载中的SQL语句分成分别具有低、中、高重要性的不同的组;
参数C07表示查询效益阈值,其用于将推荐索引候选识别成相应的重要性组;
参数C08表示查询权重策略,WIA根据不同的查询权重策略将优先权值应用于工作负载中的每个SQL查询,查询权重基于运行时信息(如果运行时信息可得),诸如消耗时间和CPU时间,或者基于执行数(如果运行时信息不可得);
参数C09表示所有推荐候选索引的集群比;
参数C10表示基于引用完整性产生外键索引;
参数C11用于规定收集统计信息的策略,由于WIA依赖统计信息,因此在运行WIA之前,需要收集相关的统计信息。
表2示出了表1中的每一个配置参数Ci的水平以及每个水平的值vi。
表2
配置参数 | 水平 | ν1 | ν2 | ν3 | ν4 | ν5 |
C01 | 3 | -1(NO_LIMIT) | 1000(MB) | 800(MB) | ||
C02 | 3 | -1(NO_LIMIT) | 8(Max Indexes) | 4(Max Indexes) | ||
C03 | 5 | 5(COMPREHENSIVE) | 4(CONDITIONAL) | 3(INTERMEDIATE) | 2(CUSTOMIZED) | 1(MINIMAL) |
C04 | 2 | 1(Conservative) | 0(Aggressive) | |||
C05 | 3 | -1(NO_LIMIT) | 5(Max Keys) | 3(Max Keys) | ||
C06 | 3 | 1(Low-0,High-100) | 2(Low-20,High-80) | 3(Low-50,High-50) | ||
C07 | 3 | 1(Low-50,Mid-50,High-50) | 2(Low-50,Mid-30,High-10) | 3(Low-30,Mid-20,High-10) |
配置参数 | 水平 | ν1 | ν2 | ν3 | ν4 | ν5 |
C08 | 3 | 5(Execution Times) | 3(AccumulatedCPU Time) | 1(AccumulatedElapsed Time) | ||
C09 | 3 | 50(50%) | 75(75%) | 90(90%) | ||
C10 | 2 | 1(YES) | 0(NO) | |||
C11 | 3 | 5(Aggressive) | 3(Normal) | 1(Conservative) |
在设置了每个配置参数的水平及每个水平的值后,在步骤S305,根据所设置的配置参数的水平,选择合适的覆盖数组。如前所述,覆盖数组表示为MCA(N;t,k,(v1,...,vk)),其中N表示实验次数,t通常选择2,表示结对测试。通常,合适的覆盖数组可从已有的已知数量结果中获得。
对于上述的WIA的例子,配置参数和水平的信息可表示为(11,(3,3,5,2,3,3,3,3,3,2,3))或者(513822),那么选择覆盖数组MCA(15;2,513822)用于测试实验设计。
然后,在步骤S310,基于在步骤S301中设置的每一个配置参数的每一个水平的值和在步骤S305中获得的覆盖数组,生成数据库顾问程序I的多个测试实验。
表3示出了用于上述WIA的测试实验。
表3
C03 | C01 | C02 | C05 | C06 | C07 | C08 | C09 | C11 | C04 | C10 | |
1 | 5(COMPREHENSIVE) | 800(MB) | 8(MaxIndexes) | 3(MaxKeys) | 1(Low-0,High-100) | 1(Low-50, | 5(ExecutionTimes) | 50(50%) | 5(Aggressive) | 0(Aggressive) | 0(NO) |
Mid-50,High-50) | |||||||||||
2 | 4(CONDITIONAL) | 800(MB) | -1(NO_LIMIT) | 5(MaxKeys) | 1(Low-0,High-100) | 3(Low-30,Mid-20,High-10) | 5(ExecutionTimes) | 90(90%) | 1(Conservative) | 0(Aggressive) | 0(NO) |
3 | 1(MINIMAL) | 1000(MB) | 4(MaxIndexes) | 5(MaxKeys) | 1(Low-0,High-100) | 1(Low-50,Mid-50,High-50) | 3(AccumulatedCPU Time) | 90(90%) | 5(Aggressive) | 1(Conservative) | 1(YES) |
4 | 1(MINIMAL) | -1(NO_LIMIT) | 8(MaxIndexes) | 3(MaxKeys) | 2(Low-20,High-80) | 2(Low-50,Mid-30,High-10) | 5(ExecutionTimes) | 75(75%) | 1(Conservative) | 1(Conservative) | 1(YES) |
5 | 2(CUSTOMIZED) | -1(NO_LIMIT) | -1(NO_LIMIT) | -1(NO_LIMIT) | 1(Low-0,High-100) | 1(Low-50,Mid-50,High-50) | 1(AccumulatedElapsedTime) | 75(75%) | 5(Aggressive) | 1(Conservative) | 0(NO) |
6 | 4(CONDITIONAL) | -1(NO_LIMIT) | 4(MaxIndexes) | 3(MaxKeys) | 2(Low-20,High-80) | 1(Low-50,Mid-50,High-50) | 1(AccumulatedElapsedTime) | 50(50%) | 3(Normal) | 1(Conservative) | 1(YES) |
7 | 2(CUSTOMIZED) | 1000(MB) | 8(MaxIndexes) | 3(MaxKeys) | 3(Low-50,High-50) | 3(Low-30,Mid-20,High-10) | 5(ExecutionTimes) | 90(90%) | 3(Normal) | 0(Aggressive) | 1(YES) |
8 | 1(MINIMAL) | 800(MB) | -1(NO_LIMIT) | -1(NO_LIMIT) | 3(Low-50,High-50) | 3(Low-30,Mid-20,High-10) | 1(AccumulatedElapsedTime) | 50(50%) | 3(Normal) | 0(Aggressive) | 0(NO) |
9 | 4(CONDITIONAL) | 1000(MB) | 8(MaxIndexes) | -1(NO_LIMIT) | 3(Low-50,High-50) | 2(Low-50,Mid-30,High-10) | 3(AccumulatedCPU Time) | 75(75%) | 5(Aggressive) | 0(Aggressive) | 0(NO) |
C03 | C01 | C02 | C05 | C06 | C07 | C08 | C09 | C11 | C04 | C10 | |
10 | 5(COMPREHENSIVE) | -1(NO_LIMIT) | 4(MaxIndexes) | 5(MaxKeys) | 3(Low-50,High-50) | 3(Low-30,Mid-20,High-10) | 3(AccumulatedCPU Time) | 75(75%) | 3(Normal) | 1(Conservative) | 1(YES) |
11 | 3(INTERMEDIATE) | 1000(MB) | 8(MaxIndexes) | 5(MaxKeys) | 2(Low-20,High-80) | 3(Low-30,Mid-20,High-10) | 1(AccumulatedElapsedTime) | 50(50%) | 5(Aggressive) | 0(Aggressive) | 0(NO) |
12 | 5(COMPREHENSIVE) | 1000(MB) | -1(NO_LIMIT) | -1(NO_LIMIT) | 2(Low-20, | 2(Low-50, | 1(Accumulated | 90(90%) | 1(Conservative) | 0(Aggressive) | 1(YES) |
High-80) | Mid-30,High-10) | ElapsedTime) | |||||||||
13 | 3(INTERMEDIATE) | 800(MB) | 4(MaxIndexes) | -1(NO_LIMIT) | 1(Low-0,High-100) | 2(Low-50,Mid-30,High-10) | 5(ExecutionTimes) | 75(75%) | 3(Normal) | 1(Conservative) | 1(YES) |
14 | 2(CUSTOMIZED) | 800(MB) | 4(MaxIndexes) | 5(MaxKeys) | 2(Low-20,High-80) | 2(Low-50,Mid-30,High-10) | 3(AccumulatedCPU Time) | 50(50%) | 1(Conservative) | 0(Aggressive) | 0(NO) |
15 | 3(INTERMEDIATE) | -1(NO_LIMIT) | -1(NO_LIMIT) | 3(MaxKeys) | 3(Low-50,High-50) | 1(Low-50,Mid-50,High-50) | 3(AccumulatedCPU Time) | 90(90%) | 1(Conservative) | 0(Aggressive) | 0(NO) |
其中,每一行代表一个测试实验,其对应一组配置参数的值。
现在返回图1,在步骤S120,执行通过步骤S110设计的多个测试实验的每一个,以生成相应的推荐数据库。也就是说,在数据库顾问程序I上依次执行每一个测试实验,从而获得与测试实验的次数相同的推荐数据库。
图4示出了执行多个测试实验的步骤S120的流程图。如图4所示,对于第一个测试实验,在步骤S401,根据该测试实验所对应的配置参数的一组值,运行数据库顾问程序I,从而获得数据库顾问程序推荐。也就是说,将数据库顾问程序I的配置参数Ci设置为第一组实验值,然后运行数据库顾问程序I。该步骤可以使用应用数据接口(API)来实现。
数据库顾问程序推荐可以是用于收集统计信息的RUNSTATS命令,或者用于创建索引的CREATE INDEX DDLs,或者用于创建视图的CREATE VIEW DDLs,或者用于创建MQTs的MQT候选DDLs。
然后,在步骤S405,将在步骤S401中得到的数据库顾问程序推荐应用于数据库,从而获得推荐数据库。
然后,对于第二个测试实验直到最后一个测试实验,重复执行步骤S401和S405,以获得相应的推荐数据库。
在步骤S120中,在每次执行一个测试实验之前,数据库顾问程序和数据库应处于基线状态,以确保每次测试实验都是基于相同的数据库状态。
返回图1,在步骤S130,测量每一个推荐数据库的性能,以获得该推荐数据库的测量结果。在该步骤中,使用与步骤S101相同的查询工作负载,并将其应用于每一个推荐数据库,从而得到每一个推荐数据库的与性能相关的测量结果。
在本实施例中,测量结果可以采用测量推荐数据库的性能而得到的性能数据,也可以采用测量推荐数据库的性能而得到的性能数据与在步骤101中测量的基线数据的差。
然后,在步骤S140,分析在步骤S130中得到的所有推荐数据库的测量结果,以确定对数据库的影响大的配置参数,那么这些配置参数是数据库顾问程序I的重要的配置参数。
图5示出了分析测量结果的步骤S140的流程图,其中,图5(a)是使用极差分析的处理的流程图,图5(b)是使用方差分析的处理的流程图。
如图5(a)所示,当获得了所有推荐数据库的测量结果后,在步骤S501,对于每一个配置参数,计算该配置参数的每一个水平所对应的测量结果的平均值,该平均值可以表明该水平对于该配置参数的贡献。
然后,在步骤S505,计算对于该配置参数所计算的平均值中最大的平均值与最小的平均值之间的差,作为该配置参数的极差。然后,在步骤S510,根据所计算的各个配置参数的极差,对这些配置参数进行排序,其中,极差最大的配置参数被确定为对数据库的影响最大。
对于上述的WIA例子,表4示出了测量结果的分析结果。
表4
其中,罗马字母I至V表示配置参数的水平,R表示极差。那么,在表4中,例如第16行第2列的元素“1363.98”表示配置参数C03的第一个水平“5”所对应的测量结果的平均值。从表4中可以看出,配置参数C03的极差最大,那么,配置参数C03对于数据库的影响也最大,被排在第1位,排在第2和第3位的分别是配置参数C11和C05。
在另一个实施例中,如图5(b)所示,在步骤S501’,对于每一个配置参数,计算该配置参数的每一个水平所对应的测量结果的总和,接着在步骤S505’,根据公式(1),计算该配置参数的偏差平方和。
其中,Ci表示第i个配置参数,vi表示配置参数Ci的水平的个数,表示配置参数Ci的水平j所对应的测量结果的和,表示包含配置参数Ci的水平j的测试实验的个数,N表示测试实验的总个数,表示配置参数Ci的偏差平方和。
然后,在步骤S510’,根据公式(2),计算该配置参数的方差:
然后,在步骤S515’,根据在步骤S510’所计算的各个配置参数的方差,对配置参数进行排序,其中,方差最大的配置参数被确定为对数据库的影响最大。
一般地,方差分析基于Fisher原理。使用F测试方法,方差反映测试数据的偏离程度,从而能够用于分析每个配置参数对于测量结果的影响。
根据上述分析的结果,可以推荐配置参数的优化值。在上述的WIA的例子中,排在前3位的配置参数分别是C03INDEX_GENERATION_POLICY,C11STATS_COLLECTION_POLICY和C05MAX_KEY_PER_TABLE。
配置参数C03控制WIA如何产生中等的索引候选,即仅仅有助于索引匹配,或者有助于索引显示,或者有助于索引只读。因此,该配置参数是非常重要的参数,其对WIA的输出有贡献,并在本质上确定推荐的优劣。
对于配置参数C11,基本的统计基本上确定WIA中成本模型和What-If功能的输入参数。最终的索引候选选择主要基于通过成本模型和What-If计算的结果,因此,该配置参数也是重要的参数。
配置参数C05限定推荐索引中关键字的最大数量,显然,索引中的关键字越多,该索引被选择以有助于索引只读的可能性越大,这避免了扫描磁盘,并显著减少I/O开销。因此,该配置参数也是重要的参数。
通过以上描述可以看出,本实施例的优化数据库顾问程序的配置参数的方法使用基于统计的DOE实验设计方法以设计和选择高效的测试实验,并使用覆盖数组以获得相对少的测试实验,通过分析测试实验的结果对配置参数进行排序,以确定重要的配置参数,从而能够自动地评估数据库顾问程序的配置参数,同时提供配置参数的优化建议,极大方便了配置参数的缺省值/初始值的适当设置。另外,本实施例的方法还能够节约数据库管理员设置配置参数的时间和精力。
在同一个发明构思下,图6是根据本发明的一个实施例的优化数据库顾问程序的配置参数的装置的方框图。下面结合附图,详细说明本实施例,其中与前面实施例相同的部分,适当省略其说明。
如图6所示,本实施例的优化数据库顾问程序的配置参数的装置600包括:测试实验设计模块601,其使用DOE实验设计方法设计数据库顾问程序的多个测试实验,其中,每一个测试实验对应配置参数的一组取值;测试实验执行模块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)计算该配置参数的偏差平方和:
其中,Ci表示第i个配置参数,vi表示配置参数Ci的水平的个数,表示配置参数Ci的水平j所对应的所述测量结果的和,表示包含配置参数Ci的水平j的测试实验的个数,N表示测试实验的总个数,表示配置参数Ci的偏差平方和。所计算的偏差平方和被提供给方差计算单元,用于根据公式(2)计算该配置参数的方差:
然后,第二排序单元根据所计算的各个配置参数的方差,对配置参数进行排序,其中,方差最大的配置参数被确定为对数据库的影响最大。
进一步地,性能测量装置603还预先测量数据库的初始性能数据,作为数据库的基线数据。在这种情况下,测量结果可以采用测量推荐数据库的性能而得到的性能数据与基线数据的差。
应当指出,本实施例的优化数据库顾问程序的配置参数的装置600在操作上可以实现图1、图3、图4和图5所示的优化数据库顾问程序的配置参数的方法。
应当指出,上述实施例中的优化数据库顾问程序的配置参数的装置及其各个组成部分可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合实现。
以上虽然通过一些示例性的实施例详细描述了本发明的优化数据库顾问程序的配置参数的方法和装置,但是以上这些实施例并不是穷举的,本领域技术人员可以在本发明的精神和范围内实现各种变化和修改。因此,本发明并不限于这些实施例,本发明的范围仅由所附的权利要求限定。
Claims (18)
1.一种优化数据库顾问程序的配置参数的方法,包括:
使用DOE实验设计方法设计所述数据库顾问程序的多个测试实验,其中,每一个所述测试实验对应所述配置参数的一组取值;
执行所述多个测试实验的每一个,以生成相应的推荐数据库;
测量每一个所述推荐数据库的性能,以获得该推荐数据库的测量结果;以及
分析所有所述推荐数据库的测量结果,以确定对所述数据库的影响大的配置参数。
2.根据权利要求1所述的方法,其中,所述设计多个测试实验的步骤包括:
设置所述数据库顾问程序的每一个配置参数的所有水平以及所述所有水平的每一个的值;
根据所设置的配置参数的水平,选择合适的覆盖数组;以及
基于所述每一个配置参数的所述水平的每一个的值和所述覆盖数组,生成所述数据库顾问程序的多个测试实验。
3.根据权利要求1或2所述的方法,其中,所述执行所述多个测试实验的每一个的步骤包括:对于所述多个测试实验的每一个,
基于所对应的所述配置参数的一组取值,运行所述数据库顾问程序以获得数据库顾问程序推荐;以及
将所述数据库顾问程序推荐应用于所述数据库,以生成推荐数据库。
4.根据权利要求2或3所述的方法,其中,所述分析所述测量结果的步骤包括:
对于所述每一个配置参数,计算该配置参数的每一个水平所对应的所述测量结果的平均值;
计算所述平均值中最大的平均值与最小的平均值之间的差,作为该配置参数的极差;以及
根据所计算的各个配置参数的极差,对所述配置参数进行排序,其中,所述极差最大的配置参数被确定为对所述数据库的影响最大。
6.根据权利要求1至5任意一项所述的方法,其中,所述测量结果是通过测量所述推荐数据库的性能而获得的性能数据。
7.根据权利要求1至5任意一项所述的方法,还包括:在所述设计多个测试实验的步骤之前,测量所述数据库的初始性能,并将所测得的性能数据作为所述数据库的基线数据。
8.根据权利要求7所述的方法,其中,所述测量结果是通过测量所述推荐数据库的性能而获得的性能数据与所述基线数据的差。
9.根据权利要求6至8任意一项所述的方法,其中,所述数据库的性能数据是整个查询工作负载的总消耗时间、整个查询工作负载的总CPU时间、每个查询的消耗时间和每个查询的CPU时间中的任意一个或多个。
10.一种优化数据库顾问程序的配置参数的装置,包括:
测试实验设计模块,用于使用DOE实验设计方法设计所述数据库顾问程序的多个测试实验,其中,每一个所述测试实验对应所述配置参数的一组取值;
测试实验执行模块,用于执行所述多个测试实验的每一个,以生成相应的推荐数据库;
性能测量模块,用于测量每一个所述推荐数据库的性能,以获得该推荐数据库的测量结果;以及
分析模块,用于分析所有所述推荐数据库的测量结果,以确定对所述数据库的影响大的配置参数。
11.根据权利要求10所述的装置,其中,所述测试实验设计模块包括:
设置单元,用于设置所述数据库顾问程序的每一个配置参数的所有水平以及所述所有水平的每一个的值;
覆盖数组选择单元,用于根据所设置的配置参数的水平,选择合适的覆盖数组;以及
测试实验生成单元,用于基于所述每一个配置参数的所述水平的每一个的值和所述覆盖数组,生成所述数据库顾问程序的多个测试实验。
12.根据权利要求10或11所述的装置,其中,所述测试实验执行模块包括:
数据库顾问程序运行单元,用于对于所述多个测试实验的每一个,基于所对应的所述配置参数的一组取值,运行所述数据库顾问程序以获得数据库顾问程序推荐;以及
推荐数据库生成单元,用于将所述数据库顾问程序推荐应用于所述数据库,以生成推荐数据库。
13.根据权利要求11或12所述的装置,其中,所述分析模块包括:
平均值计算单元,用于对于所述每一个配置参数,计算该配置参数的每一个水平所对应的所述测量结果的平均值;
极差计算单元,用于计算所述平均值中最大的平均值与最小的平均值之间的差,作为该配置参数的极差;以及
第一排序单元,用于根据所计算的各个配置参数的极差,对所述配置参数进行排序,其中,所述极差最大的配置参数被确定为对所述数据库的影响最大。
14.根据权利要求11或12所述的装置,其中,所述分析模块包括:
总和计算单元,用于对于所述每一个配置参数,计算该配置参数的每一个水平所对应的所述测量结果的总和;
偏差平方和计算单元,用于根据下述公式,计算该配置参数的偏差平方和:
其中,Ci表示第i个配置参数,vi表示配置参数Ci的水平的个数,表示配置参数Ci的水平j所对应的所述测量结果的和,表示包含配置参数Ci的水平j的测试实验的个数,N表示测试实验的总个数,表示配置参数Ci的偏差平方和;
方差计算单元,用于根据下述公式,计算该配置参数的方差:
第二排序单元,用于根据所计算的各个配置参数的方差,对所述配置参数进行排序,其中,所述方差最大的配置参数被确定为对所述数据库的影响最大。
15.根据权利要求10至14任意一项所述的装置,其中,所述测量结果是通过测量所述推荐数据库的性能而得到的性能数据。
16.根据权利要求10至14任意一项所述的装置,其中,所述性能测量装置还测量所述数据库的初始性能,并将所测的性能数据作为所述数据库的基线数据。
17.根据权利要求16所述的装置,其中,所述测量结果是通过测量所述推荐数据库的性能而得到的性能数据与所述基线数据的差。
18.根据权利要求15至17任意一项所述的装置,其中,所述数据库的性能数据是整个查询工作负载的总消耗时间、整个查询工作负载的总CPU时间、每个查询的消耗时间和每个查询的CPU时间中的任意一个或多个。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810174919 CN101727455B (zh) | 2008-10-24 | 2008-10-24 | 优化数据库顾问程序的配置参数的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810174919 CN101727455B (zh) | 2008-10-24 | 2008-10-24 | 优化数据库顾问程序的配置参数的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101727455A true CN101727455A (zh) | 2010-06-09 |
CN101727455B CN101727455B (zh) | 2013-05-01 |
Family
ID=42448355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200810174919 Expired - Fee Related CN101727455B (zh) | 2008-10-24 | 2008-10-24 | 优化数据库顾问程序的配置参数的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101727455B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102446092A (zh) * | 2010-09-30 | 2012-05-09 | 国际商业机器公司 | 一种用于实现应用程序的细粒度性能配置的方法和系统 |
CN105138621A (zh) * | 2015-08-14 | 2015-12-09 | 浪潮电子信息产业股份有限公司 | 一种Sybase ASE数据库配置优化系统及方法 |
CN105159986A (zh) * | 2015-08-31 | 2015-12-16 | 浪潮(北京)电子信息产业有限公司 | 一种oracle数据库优化配置的方法及系统 |
CN105224599A (zh) * | 2015-08-31 | 2016-01-06 | 浪潮(北京)电子信息产业有限公司 | 一种数据库自动优化配置的方法及系统 |
CN107133448A (zh) * | 2017-04-10 | 2017-09-05 | 温州医科大学 | 一种代谢组学数据融合优化处理方法 |
CN108733750A (zh) * | 2018-04-04 | 2018-11-02 | 安徽水利开发股份有限公司 | 一种数据库优化方法 |
WO2019153550A1 (zh) * | 2018-02-12 | 2019-08-15 | 平安科技(深圳)有限公司 | Sql自动优化方法、装置、计算机设备及存储介质 |
CN111723091A (zh) * | 2020-05-25 | 2020-09-29 | 中国建设银行股份有限公司 | 基于Oracle数据库的索引处理方法、系统、设备和存储介质 |
CN115080190A (zh) * | 2022-07-20 | 2022-09-20 | 浩鲸云计算科技股份有限公司 | 实现数据库容器化后参数智能实时动态配置方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1732013A1 (en) * | 2005-06-06 | 2006-12-13 | Deutsche Thomson-Brandt Gmbh | Method and device for searching a data unit in a database |
CN101051334A (zh) * | 2006-04-06 | 2007-10-10 | 香港理工大学 | 结构健康监测和信息管理系统及其方法 |
-
2008
- 2008-10-24 CN CN 200810174919 patent/CN101727455B/zh not_active Expired - Fee Related
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102446092B (zh) * | 2010-09-30 | 2014-08-13 | 国际商业机器公司 | 一种用于实现应用程序的细粒度性能配置的方法和系统 |
CN102446092A (zh) * | 2010-09-30 | 2012-05-09 | 国际商业机器公司 | 一种用于实现应用程序的细粒度性能配置的方法和系统 |
CN105138621B (zh) * | 2015-08-14 | 2019-03-26 | 浪潮电子信息产业股份有限公司 | 一种Sybase ASE数据库配置优化系统及方法 |
CN105138621A (zh) * | 2015-08-14 | 2015-12-09 | 浪潮电子信息产业股份有限公司 | 一种Sybase ASE数据库配置优化系统及方法 |
CN105159986A (zh) * | 2015-08-31 | 2015-12-16 | 浪潮(北京)电子信息产业有限公司 | 一种oracle数据库优化配置的方法及系统 |
CN105159986B (zh) * | 2015-08-31 | 2018-10-30 | 浪潮(北京)电子信息产业有限公司 | 一种oracle数据库优化配置的方法及系统 |
CN105224599B (zh) * | 2015-08-31 | 2018-11-23 | 浪潮(北京)电子信息产业有限公司 | 一种数据库自动优化配置的方法及系统 |
CN105224599A (zh) * | 2015-08-31 | 2016-01-06 | 浪潮(北京)电子信息产业有限公司 | 一种数据库自动优化配置的方法及系统 |
CN107133448A (zh) * | 2017-04-10 | 2017-09-05 | 温州医科大学 | 一种代谢组学数据融合优化处理方法 |
CN107133448B (zh) * | 2017-04-10 | 2020-05-01 | 温州医科大学 | 一种代谢组学数据融合优化处理方法 |
WO2019153550A1 (zh) * | 2018-02-12 | 2019-08-15 | 平安科技(深圳)有限公司 | Sql自动优化方法、装置、计算机设备及存储介质 |
CN108733750A (zh) * | 2018-04-04 | 2018-11-02 | 安徽水利开发股份有限公司 | 一种数据库优化方法 |
CN111723091A (zh) * | 2020-05-25 | 2020-09-29 | 中国建设银行股份有限公司 | 基于Oracle数据库的索引处理方法、系统、设备和存储介质 |
CN115080190A (zh) * | 2022-07-20 | 2022-09-20 | 浩鲸云计算科技股份有限公司 | 实现数据库容器化后参数智能实时动态配置方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101727455B (zh) | 2013-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101727455A (zh) | 优化数据库顾问程序的配置参数的方法及装置 | |
Van Aken et al. | Automatic database management system tuning through large-scale machine learning | |
EP3182288B1 (en) | Systems and methods for generating performance prediction model and estimating execution time for applications | |
Debnath et al. | SARD: A statistical approach for ranking database tuning parameters | |
Pattengale et al. | How many bootstrap replicates are necessary? | |
US7970755B2 (en) | Test execution of user SQL in database server code | |
US9021409B2 (en) | Integration of data mining and static analysis for hardware design verification | |
US8056060B2 (en) | Software testing method and system | |
US20100030758A1 (en) | Hybrid optimization strategies in automatic SQL tuning | |
US8380699B2 (en) | System and method for optimizing queries | |
US7421671B2 (en) | Graph pruning scheme for sensitivity analysis with partitions | |
Gasparini et al. | Mixed‐effects models for health care longitudinal data with an informative visiting process: A Monte Carlo simulation study | |
US11803521B2 (en) | Implementation of data access metrics for automated physical database design | |
US9317387B2 (en) | Methods and systems for reducing metrics used to monitor resources | |
US8819605B1 (en) | Deriving effective corners for complex correlations | |
US20090182994A1 (en) | Two-level representative workload phase detection method, apparatus, and computer usable program code | |
CN106776704B (zh) | 统计信息收集方法和装置 | |
Xie et al. | DEEP: Developing extremely efficient runtime on-chip power meters | |
US9081605B2 (en) | Conflicting sub-process identification method, apparatus and computer program | |
Consens et al. | Goals and benchmarks for autonomic configuration recommenders | |
Walenz et al. | Perturbation analysis of database queries | |
CN114510499A (zh) | 数据库操作语句的执行效率优化方法及装置 | |
Zhang et al. | Getting more for less in optimized mapreduce workflows | |
Sangroya et al. | Performance assurance model for hiveql on large data volume | |
Mao et al. | Extracting the representative failure executions via clustering analysis based on Markov profile model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130501 Termination date: 20151024 |
|
EXPY | Termination of patent right or utility model |