基于模板的数据库分析器的制造方法

文档序号:6489571阅读:161来源:国知局
基于模板的数据库分析器的制造方法
【专利摘要】自动化数据库分析器使用模板来适应多种数据库语言,比如SQL及其分支。模板与定义数据库模式以及对所述数据库模式的操作的元数据相组合。SQL文件将所述数据库模式在正被测试的数据库系统上实例化。然后可以执行对所述数据库模式的操作,以评定正被测试的数据库系统的性能。
【专利说明】基于模板的数据库分析器
【技术领域】
[0001]本公开涉及数据库分析器,具体来说,涉及基于模板的数据库分析器。
【背景技术】
[0002]除非这里另外指出,否则不承认本部分的公开由于包括在本部分中而成为现有技术。
[0003]数据库产品正在成为商业企业的越来越常见的元素。内存数据库技术,比如SAPHANA?数据库产品,正变得更加普遍。对于在企业中实现后端数据库系统来说,数据库设计者拥有广泛的技术和设计选择。然而,每个数据库产品具有自身的强点和自身的弱点。因此数据库设计者必须能够针对它们的特定应用选择最适合的数据库产品。
[0004]一般地,数据库设计者花费很多时间来研究和鉴别数据库候选。存在用于评定数据库的性能度量的评估工具,但是这些评估工具所提供的有限范围的功能限制了性能度量的有效性。例如,一般的评估工具关注在一个或几个特定区域,所以数据库设计者仅仅能够评定整个数据库产品的一小部分。评估工具一般专用于给定的数据库产品,所以用同一个工具对不同的数据库产品的测试是很难实现的。典型的评估工具包括:
[0005]? DTM DB Stress-这个评估工具仅仅提供压力(stress)测试。
[0006]? Agile Database Tools (Agile数据库工具)-这个工具仅仅支持对围绕所谓的Agile数据方法设计的数据库系统的测试。
[0007]? Online Database Functions Testing Tool (在线数据库功能测试工具)-这个工具仅仅支持Oracle功能单元测试。
[0008]? Hibernate-这个工具仅仅支持创建、读取更新删除(CRUD)逻辑,具有针对结构化查询语言(SQL)语句(statement)的低覆盖率。
[0009]数据库产品一般具有它们自身固有的性能基准(performance benchmark)、功能规格(functionality specs)、简单测试工具等等。然而,这些工具不能适应硬件环境和应用需求的不同组合。此外,由于数据库产品的有限的且私有的应用编程接口(API),而导致不支持二次开发。

【发明内容】

[0010]根据本公开的一个方面,提供一种对于评定数据库(DB)系统的方法,其包含:操作计算机系统来执行以下步骤:接收模板文件,所述模板文件描述所述DB系统的DB语言的一个或多个DB语句的语法和句法;接收元数据文件,所述元数据文件包含DB模式的元数据,所述DB模式的元数据包括所述DB模式的一个或多个DB表格的元数据和所述DB表格的数据字段的元数据;根据所述模板文件中指定的语法和句法生成DB语句,该DB语句包含用于创建所述DB模式的实例的第一 DB语句和用于对所述DB模式的DB表格执行操作的第二 DB语句;通过执行第一 DB语句将所述DB模式在所述DB系统上实例化;执行第二 DB语句以对所述DB模式的 DB表格执行操作;以及报告所述DB系统执行第二 DB语句的性能。[0011]根据本公开的一个方面,提供一种数据库系统,其包含:计算机系统;以及数据存储系统,其具有存储在其上的计算机可执行的程序代码,所述计算机可执行的程序代码当被计算机系统执行时,使得计算机系统执行以下操作:接收模板文件,所述模板文件描述所述DB系统的DB语言的一个或多个DB语句的语法和句法;接收元数据文件,所述元数据文件包含DB模式的元数据,所述DB模式的元数据包括所述DB模式的一个或多个DB表格的元数据和所述DB表格的数据字段的元数据;根据所述模板文件中指定的语法和句法生成DB语句,该DB语句包含用于创建所述DB模式的实例的第一 DB语句和用于对所述DB模式的DB表格执行操作的第二 DB语句;通过执行第一 DB语句将所述DB模式在所述DB系统上实例化;执行第二 DB语句以对所述DB模式的DB表格执行操作;以及报告所述DB系统执行第二 DB语句的性能。
[0012]根据本公开的一个方面,提供一种非瞬时性计算机可读存储介质,具有存储在其上的计算机可执行的程序代码,所述计算机可执行的程序代码当被计算机系统执行时使得计算机系统执行以下步骤:接收模板文件,所述模板文件描述所述DB系统的DB语言的一个或多个DB语句的语法和句法;接收元数据文件,所述元数据文件包含DB模式的元数据,所述DB模式的元数据包括所述DB模式的一个或多个DB表格的元数据和所述DB表格的数据字段的元数据;根据所述模板文件中指定的语法和句法生成DB语句,该DB语句包含用于创建所述DB模式的实例的第一 DB语句和用于对所述DB模式的DB表格执行操作的第二 DB语句;通过执行第一 DB语句将所述DB模式在所述DB系统上实例化;执行第二 DB语句以对所述DB模式的DB表格执行操作;以及报告所述DB系统执行第二 DB语句的性能。
【专利附图】

【附图说明】
[0013]图1示出根据本公开的数据库分析器的配置的示例。
[0014]图2表示数据库分析器的实施例中的工作流。
[0015]图3表示根据本公开的原理的模板的示例。
[0016]图4和图4A表示根据本公开的原理的元数据文件的示例。
[0017]图5示出根据本公开的特定实施例的高级(high level)框图。
【具体实施方式】
[0018]所公开的实施例涉及用于生成和运行用于评定在数据库系统中的性能的测试情景(test scenario)的方法和系统。在下面的描述中,出于解释的目的,阐述了很多示例和特定细节,以便提供对本公开的透彻理解。然而,对于本领域技术人员来说显而易见的是,如权利要求所限定的本公开可以单独地包括这些示例中的一些或全部特征,或者与下面描述的其它特征组合地包括这些示例中的一些或全部特征,并且还可以包括这里描述的特征和构思的修改和等效物。
[0019]图1示出根据本公开的实施例的数据库分析器100的配置。数据库分析器100被示出为与数据库管理系统(DBMS) 10配置在一起,数据库管理系统(DBMS) 10的性能将要由该数据库分析器来评定。数据库分析器100可以经由数据库API12和数据库性能API14与DBMSlO接口。数据库API12允许应用(例如,数据库分析器100)与DBMSlO通信以执行数据库操作,比如,创建和删除数据库表格,增加、修改和删除数据库表格中的数据,查询数据库表格,或者以其它方式访问DBMS。数据库性能API14允许应用,比如数据库分析器100,访问DBMSlO在DBMS的操作期间生成的性能数据。性能数据可以包括这样的数据,比如,存储器使用率、CPU使用率、页交换(swapping)等等。特定种类的数据在一个DBMS与另一个DBMS之间可以不同。
[0020]在某些实施例中,数据库分析器100可以包含系统控制台102、结构化查询语言(SQL)生成器 104、分析运行器(analysis runner) 106、跟踪管理器(tree manager) 108 和报告中心110。系统控制台102可以用作数据库分析器100所执行的功能的管理接口。在某些实施例中,用户(例如,数据库管理用户)可以使用命令行接口(CLI)访问系统控制台102。当然,要理解,在其它实施例中,可以使用其它接口设计。
[0021]用户可以经由系统控制台102访问数据库分析器功能。系统控制台102可以响应于用户的输入控制包括数据库分析器100在内的其它模块的操作。系统控制台102可以协调模块之间的动作。用户可以获得数据库分析器100正在执行的测试运行(test run)的当前处理过程信息、关于正在进行的或先前的测试运行的性能信息、等等。用户可以启动测试情景的“单次运行(single run)”或测试情景的“循环运行(loop run)”。
[0022]如下面将要讨论的,测试运行是指运行测试情景,并且测试情景是指对DBMSlO的一系列数据库操作。测试情景可以指定将要在DBMSlO中创建的数据库模式(databaseschema)并且设置应用于该数据库模式以模拟该数据库模式的用户的真实环境的(例如,数百到数千条)数据库语句。因此运行测试情景用于测试DBMSlO的能力、DBMS的性能、等等。“单次运行”是指执行测试情景一次并且根据在该运行期间收集的性能数据生成性能结果,而“循环运行”是指执行该测试情景多次,聚集来自每次执行的运行的性能数据,并且根据所聚集的性能数据(例如,通过对该数据求平均)来生成性能结果。在一个典型用例中,用户可以初始执行测试情景的单次运行以验证该测试情景的数据库操作并且识别任何逻辑错误,从而允许用户根据需要对该测试情景进行故障排除和改进。在验证了测试情景之后,可以通过执行该测试情景的一个或多个循环运行来进行性能评定。以下将描述测试情景的另外的细节。
[0023]继续参考图1,生成器104可以用于生成构成测试情景的SQL文件。虽然所公开的实施例示出使用SQL作为DBMSlO的数据库语言,但是要注意的是,也可以支持除了 SQL之外的数据库语言。SQL文件包含用于根据测试情景训练(exercise)DBMSlO的SQL语句。测试情景可以具体化在包含SQL文件的SQL语句中。测试情景可以包括执行选择(SELECT)操作、合并(JOIN)操作,各种聚类(aggregation)操作、等等。测试情景可以包含SQL语句的任何组合以及任何数目的SQL语句。
[0024]在某些实施例中,SQL生成器104可以包含模板提供器122、元数据提供器124和生成器126。模板提供器122可以访问模板文件的数据存储库(未示出)以将所选择的模板文件112提供给生成器126。同样,元数据提供器124可以访问元数据文件的数据存储库(未示出)以将所选择的元数据文件114提供给生成器126。生成器126然后可以使用所选择的模板文件112和所选择的元数据文件114中包含的信息来产生文件116。将在下面更详细地讨论模板文件和元数据文件。
[0025]分析运行器106可以扫描SQL文件116,以对DBMS10运行以SQL文件中SQL语句实现的测试情景。因此,在某些实施例中,分析运行器106可以经由数据库API12与DBMS10接口,以便将SQL语句发送到DBMSlO并且从DBMS接收响应。
[0026]在某些实施例中,分析运行器106可以包括用于运行测试情景的若干测试模块132。每个测试模块132可以以特定的方法测试DBMSlO以评定DBMS的特定方面。例如,功能稳定性模块可以评定DBMSlO可以将某些功能(比如,大数据库表格的聚类、等等)处理得有多好。性能模块可以评定当处理数据库操作(例如,选择操作、合并操作、等等)时DBMSlO中的操作的运行时间。存储器使用率模块可以评定DBMSlO的存储器管理能力;例如,可以监视峰值存储器使用率,等等。因此,分析运行器106可以与数据库性能API14接口以便收集性能数据及其他环境信息,在这里性能数据及其他环境信息统称为“性能数据”,该“性能数据”由DBMSlO生成并且提供。
[0027]在某些实施例中,跟踪管理108可以接收分析运行器106所收集的性能数据。跟踪管理器108可以存储每次运行的性能数据,不管是来自单次运行的数据,还是来自循环运行的多次运行的数据。跟踪管理器108也可以存储和管理系统日志以及与测试情景的运行有关的其它信息。
[0028]报告中心110可以从跟踪管理器108接收作为数据流的数据并且准备关于DBMSlO的性能的报告。在某些实施例中,报告中心110可以包含三个可配置的组件。数据收集器142可以挑选用户想要为其生成报告的数据。在某些实施例中,数据收集器142可以是在标准Java文件操纵(standard Java file manipulating)API中实现的文件扫描和数据过滤应用。用户可以定义数据收集器142用来提取来自跟踪管理器108的数据流中的数据的过滤器类型。仅作为一个示例,假设用户想要报告从测试情景运行开始起两天的数据。可以使用“日期过滤器”来对与所关心的这两天匹配的数据进行过滤。可以使用另外的数据过滤器来对特定种类的数据(例如,存储器使用率数据、处理器使用率数据、等等)进行过滤。
[0029]报告中心110可以包括分析器144,分析器144对数据收集器142接收的数据执行各种计算。计算可以包括求平均和求方差、统计分析、趋势分析、预测建模、等等。分析器144所生成的分析数据可以被提供给报告生成器146以报告该分析数据。该分析数据可以以任何适合的格式呈现。例如,Flex报告工具可以用来绘制报告以递送给网络(web)用户。报告可以采用Excel?文件等格式。该分析数据可以包括图表,比如,条形图、饼图、线图、等
坐寸o
[0030]图2示出根据某些实施例的数据库分析器100的典型工作流。因此,在202,数据库分析器100可以接收模板文件(例如,模板提供器122向生成器126提供模板文件112)。如下面将要更详细地解释的,模板文件指定DBMSlO所使用的数据库语言(例如,SQL)的语法(grammar)和句法(syntax)。用户可以经由系统控制台102从预先定义的模板文件的储存库当中指定模板文件。在某些实施例中,用户可以修改预先定义的模板文件,然后模板提供器可以将该经修改的预先定义的模板文件提供给生成器126作为定制的模板文件。在某些实施例中,用户可以“从最开始(from scratch)”定义他们自己的定制的模板文件。定制的模板文件可以被添加到预先定义的模板文件的储存库,供将来使用。
[0031 ] 在204,数据库分析器100可以接收元数据文件(例如,元数据提供器124向生成器126提供元数据文件114)。如下面将更详细地解释的,元数据文件定义测试情景并且指定数据库模式和将要对数据库模式执行的数据库操作。用户可以经由系统控制台102从预先定义的元数据文件的集合当中指定元数据文件。在某些实施例中,用户可以修改预先定义的元数据文件,然后元数据提供器124可以将该经修改的预先定义的元数据文件提供给生成器126作为定制的元数据文件。在某些实施例中,用户可以“从最开始(from scratch)”定义他们自己的定制的元数据文件。定制的元数据文件可以被添加到预先定义的元数据文件的储存库,供将来使用。
[0032]在206,数据库分析器100可以获得将要加载到数据库表格中的数据值,该数据值包含在204接收的元数据文件中指定的数据库模式。在某些实施例中,该数据值可以从用户的实际数据库系统(图中未示出)获得。仅仅作为示例,假设DBMSlO是用户正在考虑作为他们的现有数据库系统的替换物的候选数据库系统。因此,将要被加载到数据库模式中的数据值可以从用户的现有数据库系统(图中未示出)获得。例如,数据库分析器100可以使用适合的API与用户的现有数据库系统接口。在206,用户可以指定从他们的现有数据库系统中的哪些表格获得数据值。
[0033]在其它实施例中,206处的数据值可以由生成器126中的一个或多个随机值生成器随机地生成。例如,生成器126可以包括用于生成随机文本的随机生成器、用于生成随机数的另一随机生成器、等等。在数据敏感的情况下,例如,在可能涉及私有信息的流出的情况下,可以优选使用随机生成的数据值。例如,雇员工资、医疗信息、等等,是应当保密的非常私有敏感的信息。因此,在测试情景使用的被视为敏感或机密的数据值可以用随机生成的值来替换。在某些实施例中,在206获得的数据值可以包含来自用户的数据库系统的数据值和随机生成的数据值。
[0034]在208,数据库分析器100可以生成包含存储在SQL文件中的SQL语句集合的测试情景。例如,用户可以从系统控制台102输入命令以启动使用指定模板文件、指定元数据文件以及(来自用户的现有的数据库系统的、随机生成的、或二者的某个组合)数据值的源生成测试情景。
[0035]测试情景可以指定在正被评定的DBMSlO上创建的数据库模式以及用于访问并且以其它方式对数据库模式进行操作的数据库语句。因此,在某些实施例中,数据库分析器100 (例如,经由生成器126)可以在208a生成用于创建数据库模式的SQL语句的集合,例如,一系列SQL创建(CREATE)语句。SQL语句可以包括用于向数据库模式加载数据值的插入(INSERT)语句。这些SQL语句可以构成SQL文件中的预备(PREPARE)部分。在208b,数据库分析器100可以生成访问或其它方式对数据库模式进行操作的SQL语句的集合。这些语句构成训练DBMSlO的数据库操作,并且可以形成评定DBMS的性能所依据的基础。这些语句可以存储在SQL文件的执行(EXE⑶TE)部分中。在某些实施例中,可以在208c生成清除(Clean-Up)SQL语句,用于在对DBMSlO的测试已经终止之后删除数据库模式。这些SQL语句可以构成SQL文件的清除(CLEAN)部分。
[0036]根据本公开的原理,生成器126可以使用在202接收的模板文件中的语法和句法以及在204接收的元数据文件中的规范,来生成可以由DBMSlO执行的语法和句法正确的SQL语句(预备部分),以将数据库模式在该DBMS中实例化并且将数据加载到实例化的数据库模式。同样地,生成器126生成可以由DBMSlO执行的正确的SQL语句(执行部分),以便对形成用于评定该DBMS的基础的数据库模式进行访问和操作。
[0037]当用户想要运行测试情景时,用户可以在系统控制台102发出用于运行测试情景的命令。用户可以识别感兴趣的测试情景,并且指定单次运行测试情景或循环运行测试情景N次。用户可以指定使用哪些测试模块132来测试DBMS10。例如,在某些实施例中,每个测试模块都可以具有包含测试指令的相应配置文件,所述测试指令控制分析运行器106所进行的数据收集。仅仅作为示例,功能稳定性模块可以具有这样的指令,即“当语句执行时间大于 5 秒时记录(record when statement-execution-time>5seconds)”,用于识别具有较慢执行时间的语句。用户可以将配置文件配置为指定在运行期间将要记录的信息的种类。
[0038]数据库分析器100然后可以访问相应的SQL文件并且执行所访问的SQL文件中的不同的部分。因此,在222,数据库分析器100(例如,经由分析运行器106)可以扫描所访问的SQL文件以识别所访问的SQL文件的预备部分中的SQL语句。然后可以执行SQL语句以引起数据库模式在DBMSlO上的实例化。例如,分析运行器106经由数据库API12向DBMSlO发送包含所访问的SQL文件的预备部分的SQL语句。该SQL语句可以创建数据库模式并且可以将数据值插入该数据库模式。
[0039]在224,数据库分析器100可以执行所访问的SQL文件的执行部分以对DBMSlO进行测试。例如,数据库分析器100 (例如,经由分析运行器106)可以扫描所访问的SQL文件以识别所访问的SQL文件的执行部分中的SQL语句。在单次运行的情况中,分析运行器106可以扫描所访问的SQL文件的执行部分一次,以将每个SQL语句发送给DBMS10。在循环运行的情况中,分析运行器106可以按照用户已指定的次数扫描所访问的SQL文件的执行部分。
[0040]随着DBMSlO执行数据库操作,DBMS可以生成并且收集与其性能、资源使用率等等相关的数据。这样的信息可以经由数据库性能API14在DBMSlO的外部使用。因此、随着DBMSlO在224操作,分析运行器106可以在226从DBMS收集性能数据。分析运行器106可以在228提供该性能数据,以便由跟踪管理器108记录并且以其它方式管理。
[0041]在运行测试情景的最后,用户可以在232经由系统控制台102发出用于生成报告的命令。用户可以在242删除数据库模式。在某些实施例中,数据库模式的删除可能需要来自用户的显式命令。由于创建数据库模式可能花费很长的时间,所以可能并不期望在测试运行之后自动地删除数据库模式。
[0042]模板文件
[0043]常用的数据库语言是SQL。然而,这些年来演变出许多SQL语支(dialect)并且不同的数据库卖主可能使用不同的SQL语支。因此,根据本公开的原理,模板文件指定DBMSlO所使用的特定的SQL语支。当然,要理解,该模板文件可以表示除了 SQL之外的数据库语言。
[0044]在某些实施例中,可以为不同的SQL语支提供模板文件的储存库。例如,可以为SAP?数据库系统中使用的SQL语支定义一个或多个模板文件,可以为MySQL数据库系统等等定义模板文件。因此,取决于正在评定的特定DBMS10,用户可以选择指定用于该DBMS的SQL语法和句法的预先定义的模板文件。某些DBMS可以支持多种语言,在这种情况下,可以存在多个模板文件,每个模板文件针对一种语言。在某些实施例中,可以提供模板构建工具,以允许用户在现有模板文件不支持特定DBMS的情况下修改预先定义的模板文件,从而修改SQL语法或句法。
[0045]图3示出模板文件112的内容的示例。模板文件可以表示使用适合的表示形式表示SQL语句以指定SQL的语法和句法。图3中的示例示出模板文件的片段,其示出SQL插入语句的表示形式。该表示形式可以包括占位符302,占位符302引用特定数据库表格名称、字段(field)名称、等等。模板文件可以由生成器126用于生成DBMSlO能够认识的语法和句法正确的SQL语句。其它SQL语句可以用相似的方法表示,以便指定他们的语法和句法。
[0046]元数据文件
[0047]如上面所解释的,模板文件112告知生成器126如何生成语法和句法正确的SQL语句。根据本公开,元数据文件114告知生成器126生成什么SQL语句。元数据文件包含指定将要对DBMSlO执行的操作而不指定如何(“如何”是模板文件的工作)表达该操作的信息(“元数据语句”)。因此,元数据文件可以包含指定将要在DBMSlO上实例化的数据库模式的元数据语句。例如,该元数据语句可以指定数据库模式的名称。元数据语句可以指定包含数据库模式的数据库表格,该数据库模式包含每个数据库表格的名称、每个数据库表格的数据字段(data field)、每个数据字段的数据类型、等等。元数据文件也可以包括用于指定将要对实例化的数据库模式执行的操作或将要对实例化的数据库模式进行的访问的元数据语句。将数据库模式在DBMSlO中实例化的SQL语句构成SQL文件116的预备部分并且对实例化的数据库模式进行操作或者以其它方式访问的SQL语句构成该SQL文件的执行部分。
[0048]图4示出可以包含在元数据文件114中的元数据语句的示例。元数据语句可以指定标识数据库模式的实例中的各种元素的实例名称402、比如,数据库模式名称、包含数据库模式的数据库表格的名称、包含数据库表格的数据字段的名称、等等。实例名称402在模板文件中具有相应的占位符302。例如,指定插入操作的元数据语句可以指定与模板文件中的插入SQL语句的表示形式中的占位符相对应的实例名称。生成器126可以使用模板文件中的插入SQL语句的表示形式、通过用实例名称来替代占位符,来生成该SQL语句。
[0049]图4中示出的示例表示元数据文件的片段,其示出叫做人(PERSON)的数据库表格的元数据语句。可以看出,该元数据语句也指定组成数据字段(constituent data field)的属性,比如,数据类型、数据大小、等等。该元数据语句可以被表示为Java集合(Javacollection)。图4A示出其中该元数据语句被表示为JavaScript对象表示(JavaScriptObject Notation, JSON)文件的另一个实施例。
[0050]在某些实施例中,用户可以创建用于定义他们想要在正被评估的DBMS10上实例化的数据库模式的元数据文件。用户可以在该元数据文件中指定用于对数据库模式访问并且操作的SQL语句。在其它实施例中,数据库分析器100可以包括一个或多个预先定义的元数据文件。这样的预先定义的元数据文件可以用来定义通用测试情景(generic testscenario),以免用户不得不开发他们自己的测试情景。例如,预先定义的元数据文件可以采用众所周知的测试J2EE应用时使用“宠物商店(pet store)”情景,作为可以被用作标准测试的通用测试情景。
[0051]图5示出可以被配置并且编程以作为根据本公开的数据库分析器100操作的计算机系统502的高级框图。计算机系统502可以包括中央处理单元(CPU) 512或其它类似的数据处理组件。CPU512可以是单处理器或多处理器子系统。计算机系统502可以包括各种存储组件。例如,存储组件可以包括易失性存储器514 (例如,随机存取存储器,RAM)和数据存储设备516。可以提供通信接口 518以允许计算机系统502通过通信网络522 (比如,局域网(LAN)、因特网等等)来通信。内部总线520可以将包含计算机系统502的组件互连。[0052]数据存储设备516可以包含非瞬时性计算机可读介质,该介质上存储有计算机可执行的程序代码532。计算机可执行的程序代码532由CPU512运行以使得CPU执行本公开的步骤,例如图2中阐述的步骤。数据存储设备516可以储存数据结构534,比如,对象实例数据、运行时对象、以及这里描述的任何其它数据。例如,在某些实施例中,数据结构534可以包括模板文件112、元数据文件114以及SQL文件116。
[0053]用户(例如,数据库管理员)可以使用适合的用户接口设备542与计算机系统502交互。用户接口设备542可以包括例如输入设备和输出设备,输入设备例如键盘、键区、鼠标或其它定点设备,输出设备例如显示器。在某些实施例中,用户接口设备542可以包含显示设备以及键盘,用于经由命令行接口访问系统控制台102。
[0054]在这里讨论的所有系统和过程都可以具体化在一个或多个非瞬时性计算机可读介质上存储的程序代码中。这样的介质可以包括例如软盘、⑶-ROM、DVD-ROM、快闪驱动、磁带以及固态随机存取存储器(RAM)或只读存储器(ROM)存储单元。要理解,实施例不限于硬件和软件的任何特定组合。在这里被描述为相互通信的元件能够直接或间接地通过任何数目的用于传输数据的不同系统来通信,所述用于传输数据的不同系统包括但不限于共享存储通信、局域网、广域网、电话网络、蜂窝网络、光线网络、卫星网络、红外网络、射频网络以及可以用来在设备之间传送信息的任何其它类型的网络。此外,系统之间的通信可以通过已知的任何一个或多个传输协议来进行,所述传输协议比如异步传输模式(ATM)、因特网协议(IP )、超文本传输协议(HTTP )和无线应用协议(WAP )。
[0055]优点和技术效果
[0056]本公开的数据库分析器提供多种分析模块,比如,稳定性、性能、存储器使用率、等等。模板和元数据的使用减少了用户在建立对现有数据库行为的仿真时所需的劳动。模板可以支持目前流行的数据库,例如,SQL、MySQL、OraCle、MaXDB、等等。用户可以编辑模板(例如,使用模板构建工具)来定制模板,由此覆盖大范围的SQL语支(SQL dialects)。用户可以编辑元数据来实现任意和复杂的逻辑。这允许用户设计测试情景来识别正被测试的DBMS中的潜在处理和存储瓶颈。
[0057]对于系统设计者或应用开发者来说,数据库分析器100可以被用于进行案例分析的专业工具。包括性能比较和稳定性测试的详细分析报告可以帮助他们关于应当使用那个后端数据库解决方案做出正确的决定。
[0058]以上描述示出本公开的各种实施例以及本公开的方面可以如何实现的示例。以上示例和实施例不应当被视为仅仅是实施例,并且被呈现以说明如所附权利要求所定义的本公开的灵活性和优点。基于以上公开和所附权利要求,其它布置、实施例、实施方案和等效物对于本领域技术人员来说是显而易见的,并且可以被采用而不会脱离如所附权利要求所定义的本公开的精神和范围。
【权利要求】
1.一种用于评定数据库(DB)系统的方法,包含:操作计算机系统执行以下步骤: 接收模板文件,该模板文件描述所述DB系统的DB语言的一个或多个DB语句的语法和句法; 接收元数据文件,该元数据文件包含DB模式的元数据,所述DB模式的元数据包括DB模式的一个或多个DB表格的元数据和DB表格的数据字段的元数据; 根据所述模板文件中指定的语法和句法生成DB语句,包含用于创建所述DB模式的实例的第一 DB语句和用于对所述DB模式的DB表格执行操作的第二 DB语句; 通过执行第一 DB语句将所述DB模式在所述DB系统上实例化; 执行第二 DB语句以对所述DB模式的DB表格执行操作;以及 报告所述DB系统执行第二 DB语句的性能。
2.如权利要求1所述的方法,其中,第一DB语句将数据值插入所述DB表格中。
3.如权利要求1所述的方法,还包含:获得将被插入所述DB模式的DB表格中的数据值,其中,第一 DB语句包括将所述数据值插入所述DB表格中的DB语句。
4.如权利要求3所述的方法,还包含:从现有数据库系统接收所述数据值。
5.如权利要求3所述的方法,其中,所述数据值中的至少一些是随机生成的。
6.如权利要求1所述的方法,还包括:在执行第二DB语句期间从所述DB系统收集性能数据。
7.如权利要求1所述的方法,还包括:重复执行第二DB语句一次或多次,以及多次报告所述DB系统执行第二 DB语句的性能。
8.如权利要求1所述的方法,其中,所述模板文件是多个预先定义的模板文件当中的一个,每个预先定义的模板文件指定用于不同DB语言的语法和句法。
9.如权利要求1所述的方法,其中,所述元数据文件是多个预先定义的元数据文件当中的一个。
10.如权利要求1所述的方法,其中,所述DB语句包括第三DB语句,第三DB语句从所述DB系统删除所述DB模式,该方法还包括:通过在执行第二 DB语句之后执行第三DB语句,从所述DB系统删除所述DB模式。
11.如权利要求1所述的方法,其中,所述DB语言是结构化查询语言(SQL)。
12.—种数据库系统,包含: 计算机系统;以及 数据存储系统,其具有存储在其上的计算机可执行的程序代码,所述计算机可执行的程序代码当被计算机系统执行时,使得计算机系统执行以下操作: 接收模板文件,该模板文件描述所述DB系统的DB语言的一个或 多个DB语句的语法和句法; 接收元数据文件,该元数据文件包含DB模式的元数据,所述DB模式的元数据包括所述DB模式的一个或多个DB表格的元数据和所述DB表格的数据字段的元数据; 根据所述模板文件中指定的语法和句法生成DB语句,该DB语句包含创建所述DB模式的实例的第一 DB语句和对所述DB模式的DB表格执行操作的第二 DB语句; 通过执行第一 DB语句将所述DB模式在所述DB系统上实例化; 执行第二 DB语句以对所述DB模式的DB表格执行操作;以及报告所述DB系统执行第二 DB语句的性能。
13.如权利要求12所述的系统,其中,第一DB语句将数据值插入所述DB表格中。
14.如权利要求12所述的系统,其中,所述计算机可执行代码还使得所述计算机系统获得将被插入所述DB模式的DB表格中的数据值,其中,第一 DB语句包括用于将所述数据值插入所述DB表格中的DB语句。
15.如权利要求14所述的系统,其中,所述数据值中的至少一些是随机生成的。
16.如权利要求14所述的系统,其中,所述计算机可执行代码还使得所述计算机系统在执行第二 DB语句期间从所述DB系统收集性能数据。
17.一种非瞬时性计算机可读存储介质,具有存储在其上的计算机可执行的程序代码,所述计算机可执行的程序代码当被计算机系统执行时使得计算机系统执行以下步骤: 接收模板文件,该模板文件描述所述DB系统的DB语言的一个或多个DB语句的语法和句法; 接收元数据文件,该元数据文件包含DB模式的元数据,所述DB模式的元数据包括所述DB模式的一个或多个DB表格的元数据和所述DB表格的数据字段的元数据; 根据所述模板文件中指定的语法和句法生成DB语句,该DB语句包含创建所述DB模式的实例的第一 DB语句和对所述DB模式的DB表格执行操作的第二 DB语句; 通过执行第一 DB语句将所述DB模式在所述DB系统上实例化; 执行第二 DB语句以对所述DB模式的DB表格执行操作;以及 报告所述DB系统执行第二 DB语句的性能。
18.如权利要求17所述的非瞬时性计算机可读存储介质,其中,第一DB语句将数据值插入所述DB表格中。
19.如权利要求17所述的非瞬时性计算机可读存储介质,其中,计算机系统还执行以下步骤:获得将被插入所述DB模式的DB表格中的数据值,其中,第一 DB语句包括用于将所述数据值插入所述DB表格中的DB语句。
20.如权利要求17所述的非瞬时性计算机可读存储介质,其中,所述数据值中的至少一些是随机生成的。
【文档编号】G06F17/30GK103714066SQ201210374651
【公开日】2014年4月9日 申请日期:2012年9月29日 优先权日:2012年9月29日
【发明者】陈颖宇, X.徐, X.周, J.顾 申请人:Sap股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1