首页> 中国专利> 聚合数据库运行时信息和分析应用性能的方法及装置

聚合数据库运行时信息和分析应用性能的方法及装置

摘要

本发明提供了聚合数据库运行时信息的方法,分析应用性能的方法。根据本发明的一个方面,提供了一种聚合数据库运行时信息的方法,包括:按照查询(query)对上述数据库运行时信息进行聚合;以及按照对象(object)对上述按照查询聚合的数据库运行时信息进行聚合。

著录项

  • 公开/公告号CN101196890A

    专利类型发明专利

  • 公开/公告日2008-06-11

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN200610164589.4

  • 申请日2006-12-08

  • 分类号G06F17/30(20060101);

  • 代理机构11247 北京市中咨律师事务所;

  • 代理人李峥;刘瑞东

  • 地址 美国纽约

  • 入库时间 2023-12-17 20:15:19

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-02-15

    未缴年费专利权终止 IPC(主分类):G06F17/30 授权公告日:20100616 终止日期:20101208 申请日:20061208

    专利权的终止

  • 2010-06-16

    授权

    授权

  • 2008-08-06

    实质审查的生效

    实质审查的生效

  • 2008-06-11

    公开

    公开

说明书

技术领域

本发明涉及数据库调优的技术,具体地说,涉及对数据库运行时信息进行聚合并对应用性能进行分析的方法及装置。

背景技术

随着数据库应用需求的增加,应用中查询的数量和复杂度显著增加,这对于数据库管理员和应用开发设计人员进行数据库应用性能优化、数据库设计改进和数据库维护是一个巨大挑战。通常,数据库管理员需要根据统计信息和资源利用情况来调整数据库应用的性能,基于在数据库上实际运行的查询改进数据库设计例如索引等,并确定何时进行数据库维护同时最小化对应用性能的影响。然而,数据库管理员很难直接利用在数据库系统上运行的成千上万个查询信息来进行这些工作。

上述困难的一个主要原因是缺乏充足的相关查询信息。为了进行应用性能调整,数据库管理员和应用开发设计人员需要记录一些查询信息,例如查询执行的频率,所涉及的表、列、列组和索引等。这些信息有利于改进数据库设计。为了确定何时进行数据库维护,数据库管理员需要获得更详细的信息,以使他们知道何时是进行数据库维护的最佳时期。然而,简单地收集和保存这些信息对于存储空间和系统性能来说都是巨大的负荷。结果,数据库管理员通常只收集少量查询信息,而这又不能够获得充足的信息。

下面列举一些目前的数据库的解决方案,例如Oracle,IBM(国际商业机器公司)的DB2,微软公司的SQL Server(Microsoft SQL Server)。

Oracle

Oracle可以聚合查询运行时信息,并可选地保存访问路径。然而,它不具有历史信息,并且当需要确定进行数据库维护的最佳时期时它们不能提供详细的信息用于进一步分析。

IBM DB2

IBM DB2的工具Cogito具有两个产品EZ-Tracer和EZ-SQLWarehouse(仓库),它们可以监视查询,捕获查询实例,聚合运行时信息并确定访问路径,并将这些信息加载到仓库用于进一步分析。然而,与Oracle一样,Cogito没有充足的历史信息来确定数据库维护的最佳时期。

Microsoft SQL Server

Microsoft SQL Server的一些跟踪工具可以监视和捕获服务器的活动,然而,获得的查询信息非常有限,没有聚合查询运行时信息和访问路径信息。此外,不是应用中的所有查询都能被监视。

发明内容

为了解决上述现有技术中存在的问题,本发明提供了聚合数据库运行时信息的方法,分析应用性能的方法,聚合数据库运行时信息的装置,以及分析应用性能的装置。

根据本发明的一个方面,提供了一种聚合数据库运行时信息的方法,包括:按照查询(query)对上述数据库运行时信息进行聚合;以及按照对象(object)对上述按照查询聚合的数据库运行时信息进行聚合。

根据本发明的另一个方面,提供了一种分析应用性能的方法,其特征在于,根据利用上述聚合数据库运行时信息的方法获得的信息,分析应用性能。

根据本发明的另一个方面,提供了一种聚合数据库运行时信息的装置,包括:查询聚合单元,按照查询(query)对上述数据库运行时信息进行聚合;以及对象聚合单元,按照对象(object)对上述按照查询聚合的数据库运行时信息进行聚合。

根据本发明的另一个方面,提供了一种分析应用性能的装置,其特征在于,包括分析单元,根据利用上述聚合数据库运行时信息的装置获得的信息,分析应用性能。

附图说明

相信通过以下结合附图对本发明具体实施方式的说明,能够使人们更好地了解本发明上述的特点、优点和目的。

图1是根据本发明的一个实施例的聚合数据库运行时信息的方法的流程图;

图2是根据本发明的另一个实施例的分析应用性能的方法的流程图;

图3是根据本发明的另一个实施例的聚合数据库运行时信息的装置的方框图;以及

图4是根据本发明的另一个实施例的分析应用性能的装置的方框图。

具体实施方式

下面就结合附图对本发明的各个优选实施例进行详细的说明。

聚合数据库运行时信息的方法

图1是根据本发明的一个实施例的聚合数据库运行时信息的方法的流程图。如图1所示,首先,在步骤101,按照查询对上述数据库运行时信息进行聚合。具体地,本实施例涉及的数据库可以是本领域的技术人员公知的任何数据库,例如Oracle,IBM DB2,Microsoft SQL Server,也可以是未来开发的任何数据库,本发明对此没有任何限制。此外,数据库的基本元素包括例如表、索引等等。

在本实施例中,数据库运行时信息是指在数据库的运行过程中涉及到的信息,例如数据库执行每个查询实例,及其相应的运行信息。需要指出,在本实施例中,“查询(query)”是指广义的查询,例如,所有利用数据库操作语言(DML)进行的数据库操作。

具体地,在步骤101,首先从上述数据库运行时信息中提取每个查询实例(query instance)的查询语句(query statement)和相关元信息(metainformation)。在本实施例中,将查询语句和相关元信息的组合作为一个查询。下面对查询语句和相关元信息进行详细描述。

在本实施例中,查询语句包括结构化查询语言(Structured QueryLanguage,SQL)中的基本查询语句,具体地,包括数据操作语言(DataManipulation Language,DML)中的基本查询语句,例如在数据库中插入(insert)数据、修改(update)数据库中的数据、删除(delete)数据库中的数据、查询(select)数据库中的数据等,本发明对此没有任何限制。在本实施例中,相关元信息是指与该查询的解释、执行、优化、编译等相关的元信息。具体地,模式用于指定执行一条语句时所涉及的数据库对象;安全选项用于限定执行一条语句使用的权限;优化选项用于辅助执行路径的选择。例如,通常的数据库中的模式(schema),安全选项,优化选项。例如,模式是指,对于相同的查询语句,由于用户不同,得到的结果也不同,因此对应不同的查询。

具体地,例如根据本发明的一个实施例,在IBM DB2中,相关元信息也可以是指绑定选项(Bind Option),其包括执行选项和编译选项,有关绑定选项的详细内容参见IBM DB2 Universal Database for z/OS,Version 8,Command Reference Chapter 15,在此通过参考引入其整个内容并省略其说明。

在步骤101,在从上述数据库运行时信息中提取每个查询实例的查询语句和相关元信息之后,按照每个查询即查询语句和相关元信息的组合,以最小时间单位,对上述数据库运行时信息进行聚合。在本实施例中,最小时间单位可以根据需要设定,例如1小时,1天等,本发明对此没有任何限制。

具体地,在本步骤,对于每个查询,在每个最小时间单位内,计算与该查询对应的查询实例的运行信息。在本实施例中,运行信息包括但不限于:CPU占用时间,运行时间(elapse time),执行次数(execution count),同步I/O次数(number of synchronous IO),申请页的次数(number ofgetpage operations),同步缓冲区读次数(number of synchronous bufferread operations performed),同步缓冲区写次数(number of buffersynchronous write operations performed),处理的行数(number of rowsprocessed),排序次数(number of sorts performed),索引访问次数(number of index scans performed),表查询次数(number of tablespacescans performed),并行组数(number of parallel groups created),等待锁的时间(wait time for lock and latch request),等待全局锁的时间(waittime for global locks),为读等待其他线程的时间(wait time for readactivity done by another thread),为写等待其他线程的时间(wait time forwrite activity done by another thread)等,本发明并不限于此。

在本实施例中,运行时间是指数据库引擎完成与该查询对应的查询实例所花费的时间,如果在该最小时间单位中与该查询对应的查询实例包括多个,则将多个查询实例花费的总时间作为这里的与该查询对应的查询实例的运行时间。

此外,在每个最小时间单位内,提取与该查询对应的查询实例的访问路径(access path)。在本实施例中,访问路径是指当一个查询涉及多个对象时,查询多个数据库对象的先后顺序以及对不同对象的访问方式,例如对于一个查询语句:

SELECT*FROM TABLE1,TABLE2,TABLE3WHERE AGE=12

如果先查询TABLE2,接着查询TABLE1,最后查询TABLE3,则与该查询对应的查询实例的访问顺序为[TABLE2,TABLE1,TABLE3]。应该理解,这里列举的访问路径只是为了说明目的,本发明涉及的访问路径可以是本领域的技术人员公知的任何访问路径。

可选地,在本实施例中,可以对查询语句和相关元信息的语义相同的多个查询进行合并(consolidating)。在本实施例中,语义相同的查询是指例如仅仅字面上或变量参数不同的查询。例如对于下面两个查询语句:

SELECT*FROM TABLE1,TABLE2,TABLE3WHERE AGE=12

SELECT*FROM TABLE1,TABLE2,TABLE3WHERE AGE=13

二者仅仅是书写方式不同,如果对应的查询具有相同的相关元信息,则实际执行这两个查询的结果和过程没有任何区别,从而可以将这两个查询合并为一个查询。

此外,可选地,在本实施例中,可以删除同一个查询下的在同一个时间单位中重复的访问路径。众所周知,在一定时期内,访问路径是不会变化的,从而可以将同一个查询的重复的访问路径删除。

最后,在步骤105,按照对象对上述在步骤101中按照查询聚合的数据库运行时信息进行聚合。具体地,首先,提取上述访问路径中包含的全部对象,并接着按照每个提取的对象,以最小时间单位,对上述按照查询聚合后的数据库运行时信息进行聚合。在此处,最小时间单位与上述最小时间单位相同,可以根据需要设定,例如1小时,1天等。

在本实施例中,从上述访问路径中提出的对象包括本领域的技术人员公知的任何对象,例如表、列、列组、索引等,本发明对此没有任何限制。

具体地,在步骤105,对于每个对象,在每个最小时间单位内,计算访问路径中包含该对象的查询实例的运行信息,例如包括但不限于CPU占用时间,运行时间,执行次数,同步I/O次数,申请页的次数,同步缓冲区读次数,同步缓冲区写次数,处理的行数,排序次数,索引访问次数,表查询次数,并行组数,等待锁的时间,等待全局锁的时间,为读等待其他线程的时间,为写等待其他线程的时间等,本发明并不限于此。

在本实施例中,运行时间是指数据库引擎完成访问路径中包含该对象的查询实例所花费的时间,如果访问路径中包含该对象的查询实例包括多个,则将多个查询实例花费的总时间作为这里的访问路径中包含该对象的查询实例的运行时间。

通过使用本实施例的聚合数据库运行时信息的方法,能够为应用性能调整、数据库设计改进和数据库维护提供充足并有用的信息。这些信息包括关于查询和对象的信息,从而为数据库管理员进行上述工作提供了方便。

此外,通过使用本实施例的聚合数据库运行时信息的方法,可以有效地聚合数据库运行时信息以降低空间负荷并提高分析效率。具体地,将原始数据聚合成对于分析有用的信息,合并类似数据,并删除重复数据,从而降低了空间负荷,同时降低了进行分析花费的时间。

分析应用性能的方法

在同一发明构思下,图2是根据本发明的另一个实施例的分析应用性能的方法的流程图。下面就结合该图,对本实施例进行描述。对于那些与前面实施例相同的部分,适当省略其说明。

如图2所示,首先,在步骤201,利用聚合数据库运行时信息的方法对数据库运行时信息进行聚合,获得聚合后的方法。具体地,本实施例涉及的数据库可以是本领域的技术人员公知的任何数据库,例如Oracle,IBMDB2,Microsoft SQL Server,也可以是未来开发的任何数据库,本发明对此没有任何限制。此外,在本实施例中,数据库运行时信息是指在数据库的运行过程中涉及到的任何信息,例如对数据库进行的各种操作,本发明对此没有任何限制。此外,在本实施例中,聚合数据库运行时信息的方法可以是上述参考图1的实施例的方法,也可以是本领域的技术人员公知的任何其它方法。

最后,在步骤205,根据在步骤201中利用聚合数据库运行时信息的方法获得的信息,分析应用性能。具体地,对应用性能的分析包括提炼数据库查询和数据库对象随时间变化的的柱状图,为数据库系统调优提供系统化、有效的数据支持,以及本领域的技术人员公知的对数据库进行的各种调优,本发明对此没有任何限制。

通过使用本实施例的分析应用性能的方法,能够为应用性能调整、数据库设计改进和数据库维护提供充足并有用的信息。这些信息包括关于查询和对象的信息,从而为数据库管理员进行上述工作提供了方便。

此外,通过使用本实施例的分析应用性能的方法,可以有效地聚合数据库运行时信息以降低空间负荷并提高分析效率。具体地,将原始数据聚合成对于分析有用的信息,合并类似数据,并删除重复数据,从而降低了空间负荷,同时降低了进行分析花费的时间。

聚合数据库运行时信息的装置

在同一发明构思下,图3是根据本发明的另一个实施例的聚合数据库运行时信息的装置的方框图。下面就结合该图,对本实施例进行描述。对于那些与前面实施例相同的部分,适当省略其说明。

如图3所示,本实施例的聚合数据库运行时信息的装置300包括:查询聚合单元301,按照查询对上述数据库运行时信息进行聚合;以及对象聚合单元305,按照对象对上述按照查询聚合的数据库运行时信息进行聚合。

具体地,本实施例涉及的数据库可以是本领域的技术人员公知的任何数据库,例如Oracle,IBM DB2,Microsoft SQL Server,也可以是未来开发的任何数据库,本发明对此没有任何限制。此外,数据库的基本元素包括例如表、索引等等。

在本实施例中,数据库运行时信息是指在数据库的运行过程中涉及到的信息,例如对数据库进行的各种操作,以及数据库执行每个查询实例的信息。需要指出,在本实施例中,“查询(query)”是指广义的查询,例如,所有利用数据库操作语言(DML)进行的数据库操作。

具体地,查询聚合单元301包括提取单元,用于从上述数据库运行时信息中提取每个查询实例(query instance)的查询语句(query statement)和相关元信息(meta information)。在本实施例中,将查询语句和相关元信息的组合作为一个查询。下面对查询语句和相关元信息进行详细描述。

在本实施例中,查询语句包括结构化查询语言(Structured QueryLanguage,SQL)中的基本查询语句,具体地,包括数据操作语言(DataManipulation Language,DML)中的基本查询语句,例如在数据库中插入(insert)数据、修改(update)数据库中的数据、删除(delete)数据库中的数据、查询(select)数据库中的数据等,本发明对此没有任何限制。在本实施例中,相关元信息是指与该查询的解释、执行、优化、编译等相关的元信息。具体地,模式用于指定执行一条语句时所涉及的数据库对象;安全选项用于限定执行一条语句使用的权限;优化选项用于辅助执行路径的选择。例如,通常的数据库中的模式(schema),安全选项,优化选项。例如,模式是指,对于相同的查询语句,由于用户不同,得到的结果也不同,因此对应不同的查询。

具体地,例如根据本发明的一个实施例,在IBM DB2中,相关元信息也可以是指绑定选项(Bind Option),其包括执行选项和编译选项,有关绑定选项的详细内容参见IBM DB2 Universal Database for z/OS,Version 8,Command Reference Chapter 15,在此通过参考引入其整个内容并省略其说明。

在本实施例中,在查询聚合单元301的提取单元从上述数据库运行时信息中提取每个查询实例的查询语句和相关元信息之后,查询聚合单元301按照每个查询即查询语句和相关元信息的组合,以最小时间单位,对上述数据库运行时信息进行聚合。在本实施例中,最小时间单位可以根据需要设定,例如1小时,1天等,本发明对此没有任何限制。

具体地,在本步骤,查询聚合单元301还包括时间计算单元,对于每个查询,在每个最小时间单位内,该时间计算单元计算与该查询对应的查询实例的运行信息。在本实施例中,运行信息包括但不限于:CPU占用时间,运行时间(elapse time),执行次数(execution count),同步I/O次数(number of synchronous IO),申请页的次数(number of getpageoperations),同步缓冲区读次数(number of synchronous buffer readoperations performed),同步缓冲区写次数(number of buffer synchronouswrite operations performed),处理的行数(number of rows processed),排序次数(number of sorts performed),索引访问次数(number of indexscans performed),表查询次数(number of tablespace scans performed),并行组数(number of parallel groups created),等待锁的时间(wait timefor lock and latch request),等待全局锁的时间(wait time for globallocks),为读等待其他线程的时间(wait time for read activity done byanother thread),为写等待其他线程的时间(wait time for write activitydone by another thread)等,本发明并不限于此。

在本实施例中,运行时间是指数据库引擎完成与该查询对应的查询实例所花费的时间,如果在该最小时间单位中与该查询对应的查询实例包括多个,则将多个查询实例花费的总时间作为这里的与该查询对应的查询实例的运行时间。

此外,查询聚合单元301还包括路径提取单元,在每个最小时间单位内,该路径提取单元提取与该查询对应的查询实例的访问路径。在本实施例中,访问路径是指当一个查询涉及多个对象时,查询多个对象的先后顺序,例如对于一个查询语句:

SELECT*FROM TABLE1,TABLE2,TABLE3WHERE AGE=12

如果先查询TABLE2,接着查询TABLE1,最后查询TABLE3,则与该查询对应的查询实例的访问顺序为[TABLE2,TABLE1,TABLE3]。应该理解,这里列举的访问路径只是为了说明目的,本发明涉及的访问路径可以是本领域的技术人员公知的任何访问路径。

可选地,在本实施例中,查询聚合单元301还包括合并单元,用于对查询语句和相关元信息的语义相同的多个查询进行合并。在本实施例中,语义相同的查询是指例如仅仅字面上或变量参数不同的查询。例如对于下面两个查询语句:

SELECT*FROM TABLE1,TABLE2,TABLE3WHERE AGE=12

SELECT*FROM TABLE1,TABLE2,TABLE3WHERE AGE=13

二者仅仅是书写方式不同,如果对应的查询具有相同的相关元信息,则实际执行这两个查询的结果和过程没有任何区别,从而可以将这两个查询合并为一个查询。

此外,可选地,在本实施例中,查询聚合单元301还包括删除单元,用于删除同一个查询下的在同一个时间单位中重复的访问路径。众所周知,在一定时期内,访问路径是不会变化的,从而可以将同一个查询的重复的访问路径删除。

在本实施例中,对象聚合单元305按照对象对上述查询聚合单元301按照查询聚合的数据库运行时信息进行聚合。具体地,对象聚合单元305包括提取单元,用于提取上述访问路径中包含的全部对象。在提取单元提取出上述访问路径中包含的全部对象后,对象聚合单元305按照每个提取的对象,以最小时间单位,对上述按照查询聚合后的数据库运行时信息进行聚合。在此处,最小时间单位与上述最小时间单位相同,可以根据需要设定,例如1小时,1天等。

在本实施例中,从上述访问路径中提出的对象包括本领域的技术人员公知的任何对象,例如表、列、列组、索引等,本发明对此没有任何限制。

具体地,对象聚合单元305还包括时间计算单元,对于每个对象,在每个最小时间单位内,该时间计算单元计算访问路径中包含该对象的查询实例的运行信息,例如包括但不限于CPU占用时间,运行时间,执行次数,同步I/O次数,申请页的次数,同步缓冲区读次数,同步缓冲区写次数,处理的行数,排序次数,索引访问次数,表查询次数,并行组数,等待锁的时间,等待全局锁的时间,为读等待其他线程的时间,为写等待其他线程的时间等,本发明并不限于此。

在本实施例中,运行时间是指数据库引擎完成访问路径中包含该对象的查询实例所花费的时间,如果访问路径中包含该对象的查询实例包括多个,则将多个查询实例花费的总时间作为这里的访问路径中包含该对象的查询实例的运行时间。

通过使用本实施例的聚合数据库运行时信息的装置300,能够为应用性能调整、数据库设计改进和数据库维护提供充足并有用的信息。这些信息包括关于查询和对象的信息,从而为数据库管理员进行上述工作提供了方便。

此外,通过使用本实施例的聚合数据库运行时信息的装置300,可以有效地聚合数据库运行时信息以降低空间负荷并提高分析效率。具体地,将原始数据聚合成对于分析有用的信息,合并类似数据,并删除重复数据,从而降低了空间负荷,同时降低了进行分析花费的时间。

分析应用性能的装置

在同一发明构思下,图4是根据本发明的另一个实施例的分析应用性能的装置的方框图。下面就结合该图,对本实施例进行描述。对于那些与前面实施例相同的部分,适当省略其说明。

如图4所示,本实施例的分析应用性能的装置400包括聚合数据库运行时信息的装置,用于获得聚合的信息;以及分析单元405,用于分析应用性能。

具体地,本实施例涉及的数据库可以是本领域的技术人员公知的任何数据库,例如Oracle,IBM DB2,Microsoft SQL Server,也可以是未来开发的任何数据库,本发明对此没有任何限制。此外,在本实施例中,数据库运行时信息是指在数据库的运行过程中涉及到的任何信息,例如对数据库进行的各种操作,本发明对此没有任何限制。此外,在本实施例中,聚合数据库运行时信息的装置可以是上述参考图3的实施例的聚合数据库运行时信息的装置300,也可以是本领域的技术人员公知的任何其它装置。

在本实施例中,分析单元405利用聚合数据库运行时信息的装置获得的信息,分析应用性能。具体地,对应用性能的分析包括提炼数据库查询和数据库对象随时间变化的的柱状图,为数据库系统调优提供系统化、有效的数据支持,以及本领域的技术人员公知的对数据库进行的各种调优,本发明对此没有任何限制。

通过使用本实施例的分析应用性能的装置400,能够为应用性能调整、数据库设计改进和数据库维护提供充足并有用的信息。这些信息包括关于查询和对象的信息,从而为数据库管理员进行上述工作提供了方便。

此外,通过使用本实施例的分析应用性能的装置400,可以有效地聚合数据库运行时信息以降低空间负荷并提高分析效率。具体地,将原始数据聚合成对于分析有用的信息,合并类似数据,并删除重复数据,从而降低了空间负荷,同时降低了进行分析花费的时间。

以上虽然通过一些示例性的实施例详细描述了本发明的聚合数据库运行时信息的方法,分析应用性能的方法,聚合数据库运行时信息的装置,以及分析应用性能的装置,但是以上这些实施例并不是穷举的,本领域技术人员可以在本发明的精神和范围内实现各种变化和修改。因此,本发明并不限于这些实施例,本发明的范围仅由所附的权利要求限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号