测试数据库查询引擎的效率和稳定性制造技术

技术编号:7183810 阅读:312 留言:0更新日期:2012-04-11 18:40
本文描述了用于测试数据库查询引擎的稳定性和效率的系统、方法和计算机程序产品。在一个实施例中,由查询优化器考虑的所有可能的查询执行计划以抽象计划(AP)的形式被保存。然后给每个AP依次提供查询以测试堆栈跟踪和在查询执行的过程中可能出现的不正确结果。一个实施例包括:通过比较每个AP和由查询优化器选择的查询执行计划来确定优化器效率指数(OEI),基于相对于由查询优化器选择的查询执行计划性能的提高或降低程度,将AP分成各个性能桶(performance?bucket)。在另一实施例中,为了确定优化器效率指数,AP基于估计成本被排序,并基于查询优化器估计和实际的执行行为被分成多个类。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及测试数据库查询引擎的稳定性和效率。
技术介绍
查询优化器是一种试图确定执行查询的最有效途径的数据库管理系统的组件。如果设计和实现恰当,查询优化器可以明显提高数据库管理系统(DBMQ查询处理的效率。测试任何数据库系统的稳定性和效率是有挑战的,原因是由查询优化器所选择的查询执行计划是受包括在底层数据库表中的数据大小、数据分布和待执行以操纵数据的查询类型的因素以及其它因素影响的。已经提出测试查询引擎的性能的不同方法。一个此类的测试方法包括选择具有一个或多个判定的查询,并将其提供给DBMS内的查询优化器。查询优化器生成查询执行计划 (QEP),然后查询基于所生成的QEP被执行。用户然后可以使用诸如查询执行时间的参数来确定查询优化器的性能。此测试方法的局限性之一是查询优化器对于给定的查询很大可能会生成与之前为相同查询生成的相同的QEP。如果与查询的引用之间的查询优化器关联的任何底层成本结构没有变化,则此局限性便会存在。结果,当使用此方法时,与查询优化器关联的查询执行弓I擎会被测试仅有限的代码次数或执行路径次数。因此,需要全面测试数据库查询引擎的稳定性和效率同时克服现有测试方法的局限性的系统、方法和计算机程序产品。
技术实现思路
简要地说,本专利技术包括用于测试数据库查询引擎的稳定性和数据查询优化器的效率的系统、方法、计算机程序产品的实施例和组合和其子组合。在一个实施例中,由查询优化器考虑的可能的查询执行计划以抽象计划(AP)的形式被保存。随后给每个AP提供查询以测试堆栈跟踪和在查询执行过程中可能出现的不正确结果。一个实施例包括通过将每个AP与由查询优化器选择的查询执行计划比较来确定优化器效率指数(OEI),并基于相对于由查询优化器选择的查询执行计划的性能提高或降低程度将AP分成各个性能桶(performance bucket)。在另一实施例中,为了确定优化器效率指数,AP基于估计成本被排序,并基于查询优化器估计和实际的执行行为被分成多个类。这样,本专利技术的实施例提供测试由查询优化器考虑的可能的执行计划的系统的方式,从而广泛地测试数据库查询引擎的潜在误差。下面参照附图详细描述本专利技术的另外的实施例、特征和优点以及本专利技术的各个实施例的结构和操作。附图说明被包括在此处并构成说明书的一部分的附图说明本专利技术的实施例,并与描述一起进一步用来解释本专利技术的原理,使得相关领域的技术人员能够构造并使用本专利技术。图1说明根据本专利技术的实施例的示例的数据库管理系统(DBMS)。图2说明根据本专利技术的实施例的测试引擎。图3说明本专利技术的实施例的示例的性能桶。图4A是说明本专利技术的实施例的测试引擎的示例性操作的流程图。图4B是说明本专利技术的另一实施例的测试引擎的示例性操作的流程图。图5是说明本专利技术的一个实施例的示例的测试方法的流程图。图6是说明用来实现本专利技术的实施例的组件的示例的计算机。结合附图由下文给出的详细描述,本专利技术的特征和优点将变得更加明显。图中,相似的附图标记一般表示相同、功能相似和/或结构相似的元件。通常,某元件首次出现的图以相应的附图标记的最左边的数字表示。具体实施例方式本专利技术涉及用于测试数据库查询引擎的稳定性和数据库查询优化器的效率的系统、方法、计算机程序产品的实施例和其组合和子组合。在一个实施例中,由查询优化器考虑的可能的查询执行计划以抽象计划(AP)的形式被保存。接着给每个AP提供查询以测试堆栈跟踪和在查询的执行过程中可能出现的不正确结果。一个实施例包括通过比较每个AP和由查询优化器所选择的查询执行计划来确定优化器效率指数(OEI),并基于相对于由查询优化器所选择的查询执行计划的性能提高或降低程度将AP分成各个性能桶。在另一实施例中,为了确定优化器效率指数,AP基于估计成本被排序,并基于查询优化器估计和实际的执行行为被分成多个类。这样,本专利技术的实施例提供测试由查询优化器所考虑的每个可能的执行计划的系统的方法,从而广泛地测试与查询优化器关联的数据库查询引擎的潜在误差。尽管在本文中参照具体应用的说明性实施例描述本专利技术,但应该理解本专利技术不局限于此。阅读本文提供的教导的本领域技术人员会认识到,在本专利技术的范围和本专利技术特别有用的附加领域内,还具有许多附加修改、应用和实施例。DBMS 概述本专利技术的实施例可在图1中显示的示例客户机/服务器数据库系统100中操作。 系统100包括通过网络120与服务器130通信的一个或多个客户机110。数据库管理系统 (DBMS) 140驻存在服务器130中。要注意的是,示例的客户机/服务器数据库系统100显示于图1中,这里的讨论仅出于说明的目的而不是限制的目的。本专利技术不局限于图1的例子。操作中,客户机110通过向DBMS 140发出SQL语句来将数据存储到数据库表150 的行155中或从行155中检索数据。从客户机110接收的SQL语句由DBMS 140的查询引擎 160处理。SQL是众所周知的,在许多公众可得的文献中有描述,包括由American National Standards Institute ( __ 示}^員)[iilKW American National Standard ANSI/ IS0/IEC 9075 :1992(美国国家标准 ANSI/ISO/IEC 9075 1992)"Information Technology Database languages-SQL (信息技术-数据库语文一SQL) ”,其通过引用被全文合并于此。在一个实施例中,查询引擎160包括解析器161,规范器163,编辑器165,查询优化器166,代码生成器167,执行单元169和存取方法170,现在对它们进行描述。从客户机110接收的SQL语句被传送到解析器161,解析器161将语句转换成查询树,查询树是一种以为系统方便选择的格式表示的查询组件的二进制树数据结构。在此方面,解析器161采用众所周知的解析方法(例如,递归下降分析)。查询树被规范器163规范化。规范化包括例如去掉冗余数据。另外,规范器163 可以执行误差检查,如确认出现在查询中的表名字和列名字是有效的(例如可用且合成整体)。最后,规范器163还可以查寻任何存在的参照完整性约束,并将其加入到查询中。在规范化之后,查询树被传送到编辑器165,编辑器165包括查询优化器166和代码生成器167。查询优化器166负责优化查询树。在一个实施例中,查询优化器166执行基于成本的分析以制定查询执行计划。查询优化器166例如会选择表的结合次序,并选择相关索引145。查询优化器166因此执行查询分析,并从多个生成的执行计划中确定最佳执行计划,这里“最佳”是根据任何规定的标准判定的,这又导致在由执行单元169进行的查询执行中被调用的具体存取方法170。抽象计划抽象计划(AP)是查询优化器的语言接口,通过它查询优化器166给出期望查询执行计划的描述。通常,AP表达提供在查询优化器166做出决定的层面上查询执行计划的描述。作为纯粹的说明性例子,AP可以描述查询执行计划,但允许优化器166选择查询执行计划的合适的实现。AP语言还可以基于物理级关系代数被认为是2-向用户优化器通信机制。AP表达既可以由查询优化器166使用以描述它选择的计划,也可以由用户使用以本文档来自技高网...

【技术保护点】
1.一种测试数据库管理系统(DBMS)中的查询引擎的方法,包括:a.保存由查询优化器考虑的所有查询执行计划;b.使用所述查询执行计划中的每一个查询执行计划来执行查询;c.基于所述执行确定所述查询执行计划的性能;d.基于所述性能对所述查询执行计划分类;和e.通过基于所述分类计算优化器效率指数(OEI)来确定所述查询优化器的效率。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:桑托什·达图·彭达普瑟德普托·瑞乐·乔杜里
申请(专利权)人:赛贝斯股份有限公司
类型:发明
国别省市:US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1