一种数据库性能的监控方法和装置的制作方法

文档序号:6575282阅读:169来源:国知局
专利名称:一种数据库性能的监控方法和装置的制作方法
技术领域
本发明涉及数据库性能监控技术领域,尤其涉及一种数据库性能的监控方法和装置。
背景技术
基于数据库的应用系统在企业应用中非常广泛,由于数据库的性能问题导致的应 用系统响应慢等情况时有发生,因此,在日常的运维中对于系统的性能状况做到定期收集 统计信息,在问题触发前进行及时干预,在问题发生时快速定位是非常必要的。目前的数据库性能监控方法主要有两种,一种是选取数据库的一个综合指标,作 为衡量数据库的性能标准;另一种是选取数据库中的多个性能指标,通过生成的多类告警 信息来监控数据库的性能状态。上述两种方法均有设置性能指标,然而针对性能指标的数 据缺少分析,不能为问题的定位提供详细和有效的信息。

发明内容
有鉴于此,本发明的主要目的在于提供一种数据库性能的监控方法和装置,以实 现对数据库性能的监控和分析,为问题的定位和处理提供有效的信息。为达到上述目的,本发明的技术方案是这样实现的本发明提供了一种数据库性能的监控方法,该方法包括创建需要采集的各级别的性能指标,并到数据库中采集性能指标值;将所述采集的性能指标值与预设的阈值进行比较,对超出阈值的性能指标,产生 对应的告警信息;依据所述告警信息对所采集的性能指标值执行钻取分析,得到分析结果。其中,所述各级别的性能指标包括系统级别的性能指标、会话级别的性能指标、 结构化查询语言SQL级别的性能指标和对象级别的性能指标;相应的,该方法进一步包括创建所述系统级别的性能指标到会话级别的性能指 标的关联查询;创建所述会话级别的性能指标到SQL级别的性能指标的关联查询。该方法进一步包括通过数据库访问接口到数据库中实时地、或者周期性地采集 所述创建的性能指标值。该方法进一步包括依据所述告警信息,对存在关联的各个级别的性能指标值进 行钻取分析,并得到分析结果。所述对存在关联的性能指标值进行钻取分析,具体为将所述会话级别的性能指标对应的告警信息进行聚合分析,得到异常会话标识 号;或者将所述系统级别的性能指标对应的告警信息进行聚合分析,得到系统标识号,依据 系统级别的性能指标到会话级别的性能指标的关联查询,通过所述系统标识号关联到所述 异常会话标识号;依据会话级别的性能指标到SQL级别的性能指标的关联查询,通过所述异常会话标识号关联到SQL语句标识号,通过所述SQL语句标识号获取SQL语句对应的SQL级别的 性能指标值,作为所述分析结果;依据所述SQL语句所涉及的对象标识号,获取对应的对象级别的性能指标值,作 为所述分析结果。本发明还提供了一种数据库性能的监控装置,该装置包括性能采集模块、告警模 块和性能数据分析模块,其中,所述性能采集模块,用于创建需要采集的各级别的性能指标,到数据库中采集性 能指标值,并提供给所述告警模块和性能数据分析模块;所述告警模块,用于将获取的性能指标值与预设的阈值进行比较,对超出阈值的 性能指标产生对应的告警信息,并提供给性能数据分析模块;所述性能数据分析模块,用于依据所述告警信息,对获取的性能指标值执行钻取 分析,并得到分析结果。其中,所述各级别的性能指标包括系统级别的性能指标、会话级别的性能指标、 结构化查询语言SQL级别的性能指标和对象级别的性能指标;相应的,所述性能数据分析模块进一步用于,创建所述系统级别的性能指标和会 话级别的性能指标的关联查询;创建所述会话级别的性能指标和SQL级别的性能指标的关 联查询。所述性能采集模块进一步用于,通过数据库访问接口到数据库中实时地、或者周 期性地采集所述创建的性能指标值。所述性能数据分析模块进一步用于,依据所述告警信息,对存在关联的性能指标 值进行钻取分析,并得到分析结果。对存在关联的性能指标值进行钻取分析时,所述性能数据分析模块进一步用于,将所述会话级别的性能指标对应的告警信息进行聚合分析,得到异常会话标识 号;或者将所述系统级别的性能指标对应的告警信息进行聚合分析,得到系统标识号,依据 系统级别的性能指标到会话级别的性能指标的关联查询,通过所述系统标识号关联到所述 异常会话标识号;依据会话级别的性能指标到SQL级别的性能指标的关联查询,通过所述异常会话 标识号关联到SQL语句标识号,通过所述SQL语句标识号获取SQL语句对应的SQL级别的 性能指标值,作为所述分析结果;依据所述SQL语句所涉及的对象标识号,获取对应的对象级别的性能指标值,作 为所述分析结果。针对数据库体系的特点,结合实际应用中的关注点,提出数据库性能监控的4个 级别系统级别、会话级别、SQL级别和对象级别,提取重点关注的各个级别的性能指标有 效监控数据库的性能;另外基于各个监控级别之间的关联,提供了性能指标值的钻取功能, 为问题的定位和分析提供了流程指导和关键路径分析,能够获取问题定位和处理的有效信息。


图1为本发明数据库性能的监控方法的流程图2为本发明中钻取分析的逻辑关系图;图3为本发明数据库性能的监控装置的结构关系示意图。
具体实施例方式下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。本发明特别提取与数据库相关性最强的性能指标进行监控,以达到反映数据库实 际运行的性能状况、对数据库的性能状况进行有效的分析、以及为问题的定位和处理提供 有效信息的目的。本发明数据库性能的监控方法流程如图1所示,包括步骤101,创建需要采集的各级别的性能指标,并到数据库中采集性能指标值。创建需要采集的性能指标,并通过数据库访问接口实时地、或者周期性地到数据 库中采集创建的性能指标值。其中,本发明对性能指标进行分级,较佳地可以分为四个级 别系统级别的性能指标、会话级别的性能指标、结构化查询语言(SQL,Structured Query Language)级别的性能指标、和对象级别的性能指标。基于性能指标的分级本发明的数据库 性能的监控也可以分为四个级别,包括一、系统级别的监控,所采集的是系统级别的性能指标。该级别的监控主要是对于 数据库的外围系统、如中央处理单元(CPU,Central Processing Unit)系统、输入输出(10, Input Output)系统、内存系统等的进程进行监控,能够实时反映出各个外围系统的负荷。 该级别的监控一般有对CPU的监控,主要监控指标为CPU的占用率;对10的监控,主要监控指标为数据的命中率;对内存的监控,主要监控指标为内存组件的使用率。二、会话级别的监控,监控的对象主要是数据库的会话,所采集的是会话级别的性 能指标。该级别主要是监控数据库的关键等待事件,以及时发现资源的争用情况,其中,关 键等待事件所涉及的性能指标一般包括每个会话正在等待的、或者曾经等待的资源的详细情况,具体需要监控该资源的 哪些信息可以根据时间需要来创建、如每个会话等待该资源的等待时间等;所有会话中累计发生的等待事件(累计等待次数、等待时间等);每个正在等待、或者曾经等待过资源的会话信息(该会话等待资源的等待次数、 等待时间等);上述性能指标直接反映了数据库的实际运行情况,通过关键等待事件可以跟踪到 触发事件的会话,通过会话可以定位到相关的SQL语句;除此之外,本发明还可以创建系统 级别的性能指标到会话级别的性能指标的关联查询,如此可以通过数据库外围系统的进程 定位到相关的会话,需要指出的是,上述关联查询的创建是在采集完性能指标之后,在开始 对性能指标进行钻取分析时创建的,具体的钻取分析将在后续的步骤中进行说明。三、SQL级别的监控,监控对象主要是SQL语句,所采集的是SQL级别的性能指标, 主要包括执行次数最多的SQL语句,反映了数据库内部系统在实际的运行中,使用比较集 中的应用和操作;
执行时间最长的SQL语句,直接反映了数据库内部系统耗时最长的SQL语句,由于 这些SQL语句耗时较长,需要考虑对这些SQL语句进行优化,以提高数据库的运行效率;占用资源最多的SQL语句,直接反映了数据库内部系统中占用资源最多的应用和 操作;除此之外,本发明还可以创建会话级别的性能指标到SQL级别的性能指标的关联 查询,如此就可以通过会话定位到相关的SQL语句。四、对象级别的监控,监控对象为数据库的表、记录、索引等,所采集的是对象级别 的性能指标,主要包括数据库索引的使用情况,如索引的可用性,主要通过索引的使用次数来表现;索引 的有效性,主要分析发生更新操作(如增加、删除、修改等)的数据,通过监控这些数据对应 的记录的数量,来判断数据对应的索引是否需要重建。数据库表空间的碎片程度,根据该程度对数据库表空间的碎片进行整理。另外SQL级别的监控和对象级别的监控本身就存在关联,其中,SQL级别的监控对 象为SQL语句,而SQL语句本身就涉及了对象级别的监控对象、如表、索引、记录等。需要指出的是,对于性能指标也可以有其他的分级方式,具体的可以根据需要创 建;另外,根据需要,每个分级所包含的性能指标并不限于以上所描述的,还可以创建其他 的性能指标,只要是和数据库的相关性较强的即可。步骤102,将采集的性能指标值与预设的阈值进行比较,对超出阈值的性能指标,
产生对应的告警信息。本发明中较佳地对重点关注的性能指标预先设置阈值,具体的根据实际情况来确 定符合需求的重点关注的性能指标。将性能指标值与阈值进行比较,对超出阈值的性能指 标,产生对应的告警信息。下面基于步骤101中描述的性能指标,来说明该步骤的处理。如对于系统级别的性能指标CPU的占用率,预先设置一个最高占用率阈值,说明 该占用率的合理范围为小于等于最高占用率阈值。当CPU的占用率超出所述预设的阈值、 即占用率大于最高占用率阈值时,产生告警信息,描述的是CPU占用率的异常值,以表明当 前CPU的占用率非常高、即负荷较重。如对于会话级别的性能指标每个会话正在等待或者曾经等待的资源的详细信 息,假设所关注的是会话等待该资源的时间、即等待时间,预先设置一个最长时间阈值,说 明该资源的等待时间的合理范围为小于等于该最长时间阈值。当资源的等待时间超出预设 的阈值时、即大于最长时间阈值,产生告警信息、描述的是该等待时间的异常值,说明需要 考虑对该资源进行优化。如对于对象级别的性能指标索引的可用性,预先设置一个最少次数阈值,说明索 引使用次数的合理阈值为大于等于最少次数阈值。如果某些索引的使用次数超过预设的 阈值、即索引使用次数小于最少次数阈值,则产生告警信息,描述的是索引使用次数的异常 值,说明这些索引的使用较少,用户可以考虑对这些索引进行调整、如删除等。
如对于对象级别的性能指标索引的有效性,预先设置一个最高操作比例阈值,说 明索引的有效性的比例的合理范围为小于等于最高作比例阈值。数据库系统中存在大量对 数据的操作(增加、删除、修改等),当发生数据的操作时,监控所述数据对应的记录(简称为操作记录)的数量,得到操作记录与该表中总记录的数量的比例,如果该比例超出预设 的阈值、即大于最高操作比例阈值,则产生告警信息,描述的是操作比例的异常值,说明需 要考虑对该表中的索引进行重建。需要指出的是,本发明只对系统级别的性能指标、会话级别的性能指标、和对象级 别的性能指标中重点关注的指标设置阈值,而SQL级别的性能指标只是作为对其他三个级 别的性能指标值进行分析时的参考。步骤103,依据告警信息对所采集的性能指标值执行钻取分析,得到分析结果。本发明基于上述各个监控级别之间的关联,提供了性能指标值的钻取功能。本发 明钻取分析的过程结合性能指标的分级,如图2所示,可以分为以下几个部分1、本发明可以直接对获取的会话级别的性能指标对应的告警信息,按照类别(如 等待时间、等待次数等类别)进行聚合分析,得到异常会话标识号;或者,获取系统级别的性能指标对应的告警信息,进行聚合分析,得到对应的系统 标识号。由于本发明创建了系统级别的性能指标到会话级别的性能指标的关联查询,因此, 通过系统标识号可以关联到异常会话标识号。其中,聚合分析的实现为现有技术,此处不再 赘述。2、在会话级别,由于本发明创建了会话级别的性能指标到SQL级别的性能指标的 关联查询,因此通过异常会话标识号可以关联到相关的SQL语句标识号。 3、在SQL级别,通过SQL语句标识号可以得知该SQL语句对应的SQL级别的性能 指标值,反映了该SQL语句的使用情况。4、在对象级别,将上述SQL语句涉及的对象标识号,与对象级别的性能指标进行 匹配,如SQL语句涉及的对象为表、记录、索引等,并且这些对象在数据库系统中有对应的 对象标识号,如此就可以获取SQL语句涉及的对象所对应的对象级别的性能指标值。本发明将最终获取的SQL级别的性能指标值、以及对象级别的性能指标值作为最 终的分析结果,为用户定位及处理数据库当前的问题提供了有效的依据。为了实现上述方法,本发明还提供了数据库性能的监控系统,如图3所示,包括 性能采集模块10、告警模块20和性能数据分析模块30,其中,性能采集模块10,用于创建需要采集的各级别的性能指标,到数据库中采集性能 指标值,并提供给告警模块20和性能数据分析模块30 ;告警模块20,用于将获取的性能指标值与预设的阈值进行比较,对超出阈值的性 能指标产生对应的告警信息,并提供给性能数据分析模块30 ;性能数据分析模块30,用于依据告警信息,对获取的性能指标值执行钻取分析,并 得到分析结果。其中,各级别的性能指标包括系统级别的性能指标、会话级别的性能指标、结构 化查询语言SQL级别的性能指标和对象级别的性能指标;相应的,性能数据分析模块30进一步用于,创建系统级别的性能指标和会话级别 的性能指标的关联查询;创建会话级别的性能指标和SQL级别的性能指标的关联查询。
性能采集模块10进一步用于,通过数据库访问接口到数据库中实时地、或者周期 性地采集创建的性能指标值。性能数据分析模块30进一步用于,依据告警信息,对存在关联的性能指标值进行钻取分析,并得到分析结果。对存在关联的性能指标值进行钻取分析时,性能数据分析模块30进一步用于,将会话级别的性能指标对应的告警信息进行聚合分析,得到异常会话标识号;或 者将系统级别的性能指标对应的告警信息进行聚合分析,得到系统标识号,依据系统级别 的性能指标到会话级别的性能指标的关联查询,通过系统标识号关联到异常会话标识号;依据会话级别的性能指标到SQL级别的性能指标的关联查询,通过异常会话标识 号关联到SQL语句标识号,通过SQL语句标识号获取SQL语句对应的SQL级别的性能指标 值,作为分析结果;依据SQL语句所涉及的对象标识号,获取对应的对象级别的性能指标值, 作为分 析结果。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
一种数据库性能的监控方法,其特征在于,该方法包括创建需要采集的各级别的性能指标,并到数据库中采集性能指标值;将所述采集的性能指标值与预设的阈值进行比较,对超出阈值的性能指标,产生对应的告警信息;依据所述告警信息对所采集的性能指标值执行钻取分析,得到分析结果。
2.根据权利要求1所述数据库性能的监控方法,其特征在于,所述各级别的性能指标 包括系统级别的性能指标、会话级别的性能指标、结构化查询语言SQL级别的性能指标和 对象级别的性能指标;相应的,该方法进一步包括创建所述系统级别的性能指标到会话级别的性能指标的 关联查询;创建所述会话级别的性能指标到SQL级别的性能指标的关联查询。
3.根据权利要求1或2所述数据库性能的监控方法,其特征在于,该方法进一步包括 通过数据库访问接口到数据库中实时地、或者周期性地采集所述创建的性能指标值。
4.根据权利要求2所述数据库性能的监控方法,其特征在于,该方法进一步包括依据 所述告警信息,对存在关联的各个级别的性能指标值进行钻取分析,并得到分析结果。
5.根据利要求4所述数据库性能的监控方法,其特征在于,所述对存在关联的性能指 标值进行钻取分析,具体为将所述会话级别的性能指标对应的告警信息进行聚合分析,得到异常会话标识号;或 者将所述系统级别的性能指标对应的告警信息进行聚合分析,得到系统标识号,依据系统 级别的性能指标到会话级别的性能指标的关联查询,通过所述系统标识号关联到所述异常 会话标识号;依据会话级别的性能指标到SQL级别的性能指标的关联查询,通过所述异常会话标识 号关联到SQL语句标识号,通过所述SQL语句标识号获取SQL语句对应的SQL级别的性能 指标值,作为所述分析结果;依据所述SQL语句所涉及的对象标识号,获取对应的对象级别的性能指标值,作为所 述分析结果。
6.一种数据库性能的监控装置,其特征在于,该装置包括性能采集模块、告警模块和 性能数据分析模块,其中,所述性能采集模块,用于创建需要采集的各级别的性能指标,到数据库中采集性能指 标值,并提供给所述告警模块和性能数据分析模块;所述告警模块,用于将获取的性能指标值与预设的阈值进行比较,对超出阈值的性能 指标产生对应的告警信息,并提供给性能数据分析模块;所述性能数据分析模块,用于依据所述告警信息,对获取的性能指标值执行钻取分析, 并得到分析结果。
7.根据权利要求6所述数据库性能的监控装置,其特征在于,所述各级别的性能指标 包括系统级别的性能指标、会话级别的性能指标、结构化查询语言SQL级别的性能指标和 对象级别的性能指标;相应的,所述性能数据分析模块进一步用于,创建所述系统级别的性能指标和会话级 别的性能指标的关联查询;创建所述会话级别的性能指标和SQL级别的性能指标的关联查 询。
8.根据权利要求6或7所述数据库性能的监控装置,其特征在于,所述性能采集模块进一步用于,通过数据库访问接口到数据库中实时地、或者周期性地采集所述创建的性能指 标值。
9.根据权利要求7所述数据库性能的监控装置,其特征在于,所述性能数据分析模块 进一步用于,依据所述告警信息,对存在关联的性能指标值进行钻取分析,并得到分析结果 ο
10.根据权利要求9所述数据库性能的监控装置,其特征在于,对存在关联的性能指标 值进行钻取分析时,所述性能数据分析模块进一步用于,将所述会话级别的性能指标对应的告警信息进行聚合分析,得到异常会话标识号;或 者将所述系统级别的性能指标对应的告警信息进行聚合分析,得到系统标识号,依据系统 级别的性能指标到会话级别的性能指标的关联查询,通过所述系统标识号关联到所述异常 会话标识号;依据会话级别的性能指标到SQL级别的性能指标的关联查询,通过所述异常会话标识 号关联到SQL语句标识号,通过所述SQL语句标识号获取SQL语句对应的SQL级别的性能 指标值,作为所述分析结果;依据所述SQL语句所涉及的对象标识号,获取对应的对象级别的性能指标值,作为所 述分析结果。
全文摘要
本发明公开了一种数据库性能的监控方法和装置创建需要采集的各级别的性能指标,并到数据库中采集性能指标值;将所述采集的性能指标值与预设的阈值进行比较,对超出阈值的性能指标,产生对应的告警信息;依据所述告警信息对所采集的性能指标值执行钻取分析,得到分析结果。通过本发明,可以实现对数据库性能的监控和分析,为问题的定位和处理提供有效的信息。
文档编号G06F17/30GK101989283SQ20091009029
公开日2011年3月23日 申请日期2009年8月4日 优先权日2009年8月4日
发明者王文涛 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1