一种数据库性能诊断方法、装置以及设备与流程

文档序号:14156971阅读:153来源:国知局

本发明涉及计算机技术领域,尤其涉及一种数据库性能诊断方法、装置以及设备。



背景技术:

目前,由于数据库中存储了机密数据,因此一般只有数据库管理人员有权限查询和管理数据库。当数据库异常时,数据库应用运维人员因为权限问题无法及时获取数据库相对应的脚本资源,进而无法快速诊断出导致数据库异常的原因,故无法及时解决数据库异常问题,此时数据库应用运维人员需要通过数据库管理人员来获取数据库的脚本资源,再进行诊断和修复,因此导致了数据库性能诊断效率低,并且数据库异常问题无法及时得到解决。



技术实现要素:

本发明实施例提供一种数据库性能诊断方法、装置以及设备,可以自动将导致数据库性能变差的脚本识别出来并发送相应的告警通知给管理员,以便管理员及时地进行数据库优化、提高了数据库性能诊断的效率。

一方面,本发明实施例提供了一种数据库性能诊断方法,该方法包括:

获取数据库中所有脚本的资源消耗率;

在所有脚本中查询预设时间内资源消耗率大于预设资源消耗率的若干个脚本;

识别出所述若干个脚本中性能指标大于预设性能指标的一个或者多个脚本作为目标脚本;

根据所述目标脚本相对应地生成告警通知并发送至管理员。

进一步地,所述识别出所述若干个脚本中性能指标大于预设性能指标的一个或者多个脚本作为目标脚本,包括:

获取所述若干个脚本中每个脚本在预设时间内的执行次数;

计算所述若干个脚本中每个脚本在预设时间内的平均响应时间;

对各脚本的所述执行次数以及所述平均响应时间按照预设规则进行加权处理得到相对应的加权阈值;

判断所述加权阈值是否大于预先设置的阈值;

将所述加权阈值大于预先设置的阈值的一个或者多个脚本作为目标脚本。

进一步地,所述识别出所述若干个脚本中性能指标大于预设性能指标的一个或者多个脚本作为目标脚本,包括:

获取所述若干个脚本中每个脚本在预设时间内的执行次数;

计算所述若干个脚本中每个脚本在预设时间内的平均响应时间;

判断各脚本的所述执行次数以及平均响应时间是否大于预先设置的范围;

识别出所述执行次数以及平均响应时间大于预先设置的范围的一个或者多个脚本作为目标脚本。

进一步地,所述资源消耗率包括cpu使用率,所述获取数据库中所有脚本的资源消耗率,包括:

获取数据库中所有脚本的cpu使用率;

所述在所有脚本中查询预设时间内资源消耗率大于预设资源消耗率的若干个脚本,包括:

在所有脚本中查询预设时间内cpu使用率大于预设cpu使用率的若干个脚本。

进一步地,所述资源消耗率包括占用cpu累计时间,所述获取数据库中所有脚本的资源消耗率,包括:

获取数据库中所有脚本占用cpu累计时间;

所述在所有脚本中查询预设时间内资源消耗率大于预设资源消耗率的若干个脚本,具体包括:

在所有脚本中查询预设时间内占用cpu累计时间大于预设占用cpu累计时间的若干个脚本。

另一方面,本发明实施例提供了一种数据库性能诊断装置,该装置包括:

第一获取单元,用于获取数据库中所有脚本的资源消耗率;

查询单元,用于在所有脚本中查询预设时间内资源消耗率大于预设资源消耗率的若干个脚本;

第一识别单元,用于识别出所述若干个脚本中性能指标大于预设性能指标的一个或者多个脚本作为目标脚本;

生成单元,用于根据所述目标脚本相对应地生成告警通知并发送至管理员。

进一步地,所述第一识别单元,包括:

第二获取单元,用于获取所述若干个脚本中每个脚本在预设时间内的执行次数;

第一计算单元,用于计算所述若干个脚本中每个脚本在预设时间内的平均响应时间;

加权处理单元,用于对各脚本的所述执行次数以及所述平均响应时间按照预设规则进行加权处理得到相对应的加权阈值;

第一判断单元,用于判断所述加权阈值是否大于预先设置的阈值;

第二识别单元,用于将所述加权阈值大于预先设置的阈值的一个或者多个脚本作为目标脚本。

进一步地,所述第一识别单元,具体包括:

第三获取单元,用于获取所述若干个脚本中每个脚本在预设时间内的执行次数;

第二计算单元,用于计算所述若干个脚本中每个脚本在预设时间内的平均响应时间;

第二判断单元,用于判断各脚本的所述执行次数以及平均响应时间是否大于预先设置的范围;

第三识别单元,用于识别出所述执行次数以及平均响应时间大于预先设置的范围的一个或者多个脚本作为目标脚本。

进一步地,所述资源消耗率包括cpu使用率,所述第一获取单元,具体用于:

获取数据库中所有脚本的cpu使用率;

所述查询单元,具体用于:

在所述脚本中查询预设时间内cpu使用率大于预设cpu使用率的若干个脚本。

进一步地,所述资源消耗率包括占用cpu累计时间,所述第一获取单元,具体用于:

获取数据库中所有脚本占用cpu累计时间;

所述查询单元具体用于:

在所有脚本中查询预设时间内占用cpu累计时间大于预设占用cpu累计时间的若干个脚本。

另一方面,本发明实施例提供了一种数据库性能诊断设备,所述设备包括:

存储器以及处理器;

存储器,用于存储实现数据库性能诊断的程序;

处理器,用于运行所述存储器中存储的程序,以执行以下操作:

获取数据库中所有脚本的资源消耗率;

在所有脚本中查询预设时间内资源消耗率大于预设资源消耗率的若干个脚本;

识别出所述若干个脚本中性能指标大于预设性能指标的一个或者多个脚本作为目标脚本;

根据所述目标脚本相对应地生成告警通知并发送至管理员。

综上所述,本发明具有以下有益效果:本发明实施例通过获取数据库中所有脚本的资源消耗率,在所有脚本中查询预设时间内资源消耗率大于预设资源消耗率的若干个脚本,识别出所述若干个脚本中性能指标大于预设性能指标的一个或者多个脚本作为目标脚本,根据所述目标脚本相对应地生成告警通知并发送至管理员,可以自动将导致数据库性能变差的脚本识别出来并将相应的告警通知发送给管理员,以便管理员及时地进行数据库优化、提高数据库性能诊断的效率。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种数据库性能诊断方法的示意流程图。

图2是本发明实施例提供的一种数据库性能诊断方法中样本脚本cpu使用率曲线分布情况的一示意图。

图3是本发明实施例提供的一种数据库性诊断方法中样本脚本占用cpu累计时间曲线分布情况的一示意图。

图4是本发明另一实施例提供的一种数据库性能诊断方法的示意流程图。

图5是本发明另一实施例提供的一种数据库性能诊断方法的示意流程图。

图6是本发明实施例提供的一种数据库性能诊断装置的示意性框图。

图7是本发明实施例提供的一种数据库性能诊断装置的另一示意性框图。

图8是本发明实施例提供的一种数据库性能诊断装置的另一示意性框图。

图9是本发明实施例提供的一种数据库性能诊断设备的结构组成示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

请参阅图1,图1是本发明实施例一提供的一种数据库性能诊断方法的示意流程图。该方法可以运行在智能手机(如android手机、ios手机等)、平板电脑、笔记本电脑以及智能装置等装置中。该方法主要是对数据库中的脚本进行处理,以便管理员能够及时地对数据库进行优化、并提高数据库性能诊断的效率。如图1所示,该方法的步骤包括s101~s104。

s101,获取数据库中所有脚本的资源消耗率。

在本发明实施例中,数据库中脚本的资源消耗率可以是脚本的cpu使用率,也可以是脚本占用cpu累计时间;如果所述资源消耗率为cpu使用率,则获取数据库中所有脚本的cpu使用率,如果所述资源消耗率为占用cpu累计时间,则获取数据库中所有脚本占用cpu累计时间;其中,装置通过查看cpu使用情况获取脚本的cpu使用率和占用cpu累计时间。

例如图2所示,在装置中,当前数据库的所有脚本包括脚本a、脚本b、脚本c、脚本d,在预设时间段m内,装置获取脚本a的cpu使用率为a1,脚本b的cpu使用率为b1、脚本c的cpu使用率为c1,脚本d的cpu使用率为d1;其中,预设的时间段m可以是半个小时,也可以是一个小时,在此不作限定。

例如图3所示,在装置中,当前数据库的所有脚本包括脚本a、脚本b、脚本c、脚本d,在预设时间段n内,装置获取脚本a的占用cpu累计时间为a2、脚本b的占用cpu累计时间为b2、脚本c的占用cpu累计时间为c2、脚本d的占用cpu累计时间为d2;其中,预设的时间段n可以是半个小时,也可以是一个小时,在此不作限定。

s102,在所有脚本中查询预设时间内资源消耗率大于预设资源消耗率的若干个脚本。

在本发明实施例中,如果所述资源消耗率为cpu使用率,则在所有脚本中查询预设时间内cpu使用率大于预设cpu使用率的若干脚本;如果所述资源消耗率为占用cpu累计时间,则在所有脚本中查询预设时间内占用cpu累计时间大于预设占用cpu累计时间的若干个脚本;其中,所述预设时间可以是十分钟,可以是半个小时,也可以是一个小时,具体的预设时间可以由用户自行设置,在此不作限定。

需要说明的是,所述预设的资源消耗率可以由用户自行设置,例如,如果所述资源消耗率为cpu使用率,用户可以设置预设的cpu使用率为60%,也可以设置预设的cpu使用率为80%,具体的预设的cpu使用率在此不作限定;如图2所示,在预设时间段m内,如果用户设置预设的cpu使用率为60%,则在当前数据库的所有脚本如脚本a、脚本b、脚本c、脚本d中,cpu使用率大于预设的cpu使用率的脚本包括脚本b和脚本c;如果所述资源消耗率为占用cpu累计时间,用户可以设置预设的占用cpu累计时间为2h(两个小时),也可以设置其它的预设占用cpu累计时间,具体的预设的占用cpu累计时间由用户自行设置,在此不作限定;如图3所示,在预设时间段n内,如果用户设置预设的占用cpu累计时间为2h,则在当前数据库的所有脚本如脚本a、脚本b、脚本c、脚本d中,占用cpu累计时间大于预设占用cpu累计时间的脚本包括脚本b和脚本c。

s103,识别出所述若干个脚本中性能指标大于预设性能指标的一个或者多个脚本作为目标脚本。

在本发明实施例中,所述若干个脚本中的每个脚本在装置cpu中运行存在两个执行指标,包括执行次数以及平均响应时间,其中执行次数指的是脚本在cpu中的运算次数,平均响应时间指的是脚本在cpu中从初始状态到运行状态所需要的时间的平均值,此外,在cpu中脚本的执行次数以及平均响应时间是判断数据库发生异常的主要因素;将脚本在cpu中的执行次数作为第一性能指标,将脚本在cpu中的平均响应时间作为第二性能指标,综合考虑第一性能指标和第二性能指标的结果作为所述脚本的性能指标,其中,可以先单独考虑第一性能指标和第二性能指标并分别得出结果,再将第一性能指示和第二性能指标单独考虑的结果综合起来得到最终的性能指标,也可以通过设置关系式的形式综合考虑第一性能指标和第二性能指标并得到结果作为最终的性能指标。

需要说明的是,所述预设性能指标可以由用户根据综合考虑第一性能指标和第二性能指标的结果自行设置,在此不作限定;综合考虑脚本的执行次数以及平均响应时间的影响是因为执行次数高或者平均响应时间高不一定表示该脚本的性能指标差,此外,通过将所述若干脚本中每个脚本的性能指标与预设的性能指标进行比较,并将识别出的目标脚本定义为性能指标较差的脚本,所识别出的性能指标较差的脚本可以是一个或者多个脚本。

s104,根据所述目标脚本相对应地生成告警通知并发送至管理员。

在本发明实施例中,由于所识别出的目标脚本表示当前数据库中性能较差的脚本,而在数据库异常情况中性能较差的脚本往往是导致数据库出现异常的根据原因,因此所识别出的目标脚本便是导致数据库出现异常的原因。具体地,将所述目标脚本包括脚本的执行次数、平均响应时间、脚本在当前数据库中的位置等信息生成告警通知发送给管理员;由于在告警通知中记录了出现异常的目标脚本的详细信息,因此管理员可以通过该告警通知及时了解到导致数据库异常的原因,并针对相对应的异常以及该告警通知中的详细信息及时做出解决问题的方案并对数据库进行优化,其中,管理员可以是当前数据库的管理员,可以是当前数据库的运维人员,也可以是维护数据库的相关人员,所述告警通知可以通过邮件的形式发送至管理员的邮箱中,另外,在实际应用中所述告警通知的发送形式在此不作限定。

由以上可见,本发明实施例通过获取数据库中所有脚本的资源消耗率,在所有脚本中查询预设时间内资源消耗率大于预设资源消耗率的若干个脚本,识别出所述若干个脚本中性能指标大于预设性能指标的一个或者多个脚本作为目标脚本,根据所述目标脚本相对应地生成告警通知并发送至管理员,可以自动将导致数据库性能变差的脚本识别出来并将相应的告警通知发送给管理员,以便管理员及时地进行数据库优化、提高数据库性能诊断的效率。

请参阅图4,图4是本发明实施例二提供的一种数据库性能诊断方法的示意流程图。该方法可以运行在智能手机(如android手机、ios手机等)、平板电脑、笔记本电脑以及智能设备等装置中。该方法主要是对数据库中的脚本进行处理,以便管理员能够及时地对数据库进行优化、并提高数据库性能诊断的效率。如图4所示,该方法的步骤包括s201~s208。

s201,获取数据库中所有脚本的资源消耗率。

在本发明实施例中,数据库中脚本的资源消耗率可以是脚本的cpu使用率,也可以是脚本占用cpu累计时间;如果所述资源消耗率为cpu使用率,则获取数据库中所有脚本的cpu使用率,如果所述资源消耗率为占用cpu累计时间,则获取数据库中所有脚本占用cpu累计时间;其中,装置通过查看cpu使用情况获取脚本的cpu使用率和占用cpu累计时间。

例如图2所示,在装置中,当前数据库的所有脚本包括脚本a、脚本b、脚本c、脚本d,在预设时间段m内,装置获取脚本a的cpu使用率为a1,脚本b的cpu使用率为b1、脚本c的cpu使用率为c1,脚本d的cpu使用率为d1;其中,预设的时间段m可以是半个小时,也可以是一个小时,在此不作限定。

例如图3所示,在装置中,当前数据库的所有脚本包括脚本a、脚本b、脚本c、脚本d,在预设时间段n内,装置获取脚本a的占用cpu累计时间为a2、脚本b的占用cpu累计时间为b2、脚本c的占用cpu累计时间为c2、脚本d的占用cpu累计时间为d2;其中,预设的时间段n可以是半个小时,也可以是一个小时,在此不作限定。

s202,在所有脚本中查询预设时间内资源消耗率大于预设资源消耗率的若干个脚本。

在本发明实施例中,如果所述资源消耗率为cpu使用率,则在所有脚本中查询预设时间内cpu使用率大于预设cpu使用率的若干脚本;如果所述资源消耗率为占用cpu累计时间,则在所有脚本中查询预设时间内占用cpu累计时间大于预设占用cpu累计时间的若干个脚本;其中,所述预设时间可以是十分钟,可以是半个小时,也可以是一个小时,具体的预设时间可以由用户自行设置,在此不作限定。

需要说明的是,所述预设的资源消耗率可以由用户自行设置,例如,如果所述资源消耗率为cpu使用率,用户可以设置预设的cpu使用率为60%,也可以设置预设的cpu使用率为80%,具体的预设的cpu使用率在此不作限定;如图2所示,在预设时间段m内,如果用户设置预设的cpu使用率为60%,则在当前数据库的所有脚本如脚本a、脚本b、脚本c、脚本d中,cpu使用率大于预设的cpu使用率的脚本包括脚本b和脚本c;如果所述资源消耗率为占用cpu累计时间,用户可以设置预设的占用cpu累计时间为2h(两个小时),也可以设置其它的预设占用cpu累计时间,具体的预设的占用cpu累计时间由用户自行设置,在此不作限定;如图3所示,在预设时间段n内,如果用户设置预设的占用cpu累计时间为2h,则在当前数据库的所有脚本如脚本a、脚本b、脚本c、脚本d中,占用cpu累计时间大于预设占用cpu累计时间的脚本包括脚本b和脚本c。

s203,获取所述若干个脚本中每个脚本在预设时间内的执行次数。

在本发明实施例中,所述执行次数作为脚本在装置cpu中运行的执行指标,装置可以通过脚本在cpu中的使用情况获取在预设时间内所述脚本的执行次数,其中,该预设时间可以是半个小时,也可以是一个小时,具体的预设时间可以由用户自行设置,在此不作限定。

s204,计算所述若干个脚本中每个脚本在预设时间内的平均响应时间。

在本发明实施例中,所述平均响应时间指的是脚本在cpu中从初始状态到运行状态所需要的时间的平均值,装置可以通过设置预设时间,并记录下在该预设时间内每次执行脚本时所需要的时间,根据所记录下的时间计算多次执行脚本时所需要的平均时间作为该平均响应时间;其中,所述预设时间可以是半个小时,也可以是一个小时,具体的预设时间可以由用户自行设置,在此不作限定。

s205,对各脚本的所述执行次数以及所述平均响应时间按照预设规则进行加权处理得到相对应的加权阈值。

在本发明实施例中,装置后台会将各脚本的所述执行次数和平均响应时间进行加权计算得出相对应的加权阈值,其中,用户可以自行定义权重比例,计算方法可以为:针对执行次数设置权重为0.8,再进行加权计算得到执行次数的加权值,针对平均响应时间设置权重为0.2,再进行加权计算得出平均响应时间的加权值,那么执行次数和平均响应时间二者的加权值之和即为所述加权阈值,该加权阈值用于衡量脚本对数据库性能的影响度,其中,加权阈值越大、与该加权阈值相对应的脚本对数据库性能的影响度就越大、相对应的脚本则为当前数据库中性能较差的脚本。

s206,判断所述加权阈值是否大于预先设置的阈值。

在本发明实施例中,装置后台会预存有预设阈值,预存的预设阈值可以由用户自行设定,当判断所述加权阈值大于该预设阈值时,则相对应的脚本为当前数据库中性能较差的脚本;当判断所述加权阈值小于该预设阈值时,则相对应的脚本不是当前数据库中性能较差的脚本。

s207,将所述加权阈值大于预先设置的阈值的一个或者多个脚本作为目标脚本。

在本发明实施例中,若判断所述加权阈值大于预设的阈值,相对应的脚本为当前数据库中性能较差的脚本,将这种脚本作为目标脚本。

s208,根据所述目标脚本相对应地生成告警通知并发送至管理员。

在本发明实施例中,由于所识别出的目标脚本表示当前数据库中性能较差的脚本,而在数据库异常情况中性能较差的脚本往往是导致数据库出现异常的根据原因,因此所识别出的目标脚本便是导致数据库出现异常的原因。具体地,将所述目标脚本包括脚本的执行次数、平均响应时间、脚本在当前数据库中的位置等信息生成告警通知发送给管理员;由于在告警通知中记录了出现异常的目标脚本的详细信息,因此管理员可以通过该告警通知及时了解到导致数据库异常的原因,并针对相对应的异常以及该告警通知中的详细信息及时做出解决问题的方案并对数据库进行优化,其中,管理员可以是当前数据库的管理员,可以是当前数据库的运维人员,也可以是维护数据库的相关人员,所述告警通知可以通过邮件的形式发送至管理员的邮箱中,另外,在实际应用中所述告警通知的发送形式在此不作限定。

由以上可见,本发明实施例通过获取所述若干个脚本中每个脚本在预设时间内的执行次数,并计算每个脚本的平均响应时间,再对各脚本的所述执行次数以及所述平均响应时间按照预设规则进行加权处理得到相对应的加权阈值,若所述加权阈值大于预先设置的阈值,将所述加权阈值大于预先设置的阈值的一个或者多个脚本作为目标脚本,从而可以准确地从若干个脚本中获得性能较差的脚本作为目标脚本,并将该目标脚本相对应地生成告警通知并发送至管理员。

请参阅图5,图5是本发明实施例三提供的一种数据库性能诊断方法的示意流程图。该方法可以运行在智能手机(如android手机、ios手机等)、平板电脑、笔记本电脑以及智能设备等装置中。该方法主要是对数据库中的脚本进行处理,以便管理员能够及时地对数据库进行优化、并提高数据库性能诊断的效率。如图5所示,该方法的步骤包括s301~s307。

s301,获取数据库中所有脚本的资源消耗率。

在本发明实施例中,数据库中脚本的资源消耗率可以是脚本的cpu使用率,也可以是脚本占用cpu累计时间;如果所述资源消耗率为cpu使用率,则获取数据库中所有脚本的cpu使用率,如果所述资源消耗率为占用cpu累计时间,则获取数据库中所有脚本占用cpu累计时间;其中,装置通过查看cpu使用情况获取脚本的cpu使用率和占用cpu累计时间。

例如图2所示,在装置中,当前数据库的所有脚本包括脚本a、脚本b、脚本c、脚本d,在预设时间段m内,装置获取脚本a的cpu使用率为a1,脚本b的cpu使用率为b1、脚本c的cpu使用率为c1,脚本d的cpu使用率为d1;其中,预设的时间段m可以是半个小时,也可以是一个小时,在此不作限定。

例如图3所示,在装置中,当前数据库的所有脚本包括脚本a、脚本b、脚本c、脚本d,在预设时间段n内,装置获取脚本a的占用cpu累计时间为a2、脚本b的占用cpu累计时间为b2、脚本c的占用cpu累计时间为c2、脚本d的占用cpu累计时间为d2;其中,预设的时间段n可以是半个小时,也可以是一个小时,在此不作限定。

s302,在所有脚本中查询预设时间内资源消耗率大于预设资源消耗率的若干个脚本。

在本发明实施例中,如果所述资源消耗率为cpu使用率,则在所有脚本中查询预设时间内cpu使用率大于预设cpu使用率的若干脚本;如果所述资源消耗率为占用cpu累计时间,则在所有脚本中查询预设时间内占用cpu累计时间大于预设占用cpu累计时间的若干个脚本;其中,所述预设时间可以是十分钟,可以是半个小时,也可以是一个小时,具体的预设时间可以由用户自行设置,在此不作限定。

需要说明的是,所述预设的资源消耗率可以由用户自行设置,例如,如果所述资源消耗率为cpu使用率,用户可以设置预设的cpu使用率为60%,也可以设置预设的cpu使用率为80%,具体的预设的cpu使用率在此不作限定;如图2所示,在预设时间段m内,如果用户设置预设的cpu使用率为60%,则在当前数据库的所有脚本如脚本a、脚本b、脚本c、脚本d中,cpu使用率大于预设的cpu使用率的脚本包括脚本b和脚本c;如果所述资源消耗率为占用cpu累计时间,用户可以设置预设的占用cpu累计时间为2h(两个小时),也可以设置其它的预设占用cpu累计时间,具体的预设的占用cpu累计时间由用户自行设置,在此不作限定;如图3所示,在预设时间段n内,如果用户设置预设的占用cpu累计时间为2h,则在当前数据库的所有脚本如脚本a、脚本b、脚本c、脚本d中,占用cpu累计时间大于预设占用cpu累计时间的脚本包括脚本b和脚本c。

s303,获取所述若干个脚本中每个脚本在预设时间内的执行次数。

在本发明实施例中,所述执行次数作为脚本在装置cpu中运行的执行指标,装置可以通过脚本在cpu中的使用情况获取在预设时间内所述脚本的执行次数,其中,该预设时间可以是半个小时,也可以是一个小时,具体的预设时间可以由用户自行设置,在此不作限定。

s304,计算所述若干个脚本中每个脚本在预设时间内的平均响应时间。

在本发明实施例中,所述平均响应时间指的是脚本在cpu中从初始状态到运行状态所需要的时间的平均值,装置可以通过设置预设时间,并记录下在该预设时间内每次执行脚本时所需要的时间,根据所记录下的时间计算多次执行脚本时所需要的平均时间作为该平均响应时间;其中,所述预设时间可以是半个小时,也可以是一个小时,具体的预设时间可以由用户自行设置,在此不作限定。

s305,判断各脚本的所述执行次数以及平均响应时间是否大于预先设置的范围。

在本发明实施例中,预先设置所述执行次数的范围以及平均响应时间的范围,预先设置的范围可以由用户自行设定。若所述若干个脚本中每个脚本的执行次数落入预先设置的范围,与该执行次数相对应的脚本不是当前数据库中性能较差的脚本;若所述若干个脚本中每个脚本的执行次数大于预先设置的范围,与该执行次数相对应的脚本为当前数据库中性能较差的脚本。

s306,识别出所述执行次数以及平均响应时间大于预先设置的范围的一个或者多个脚本作为目标脚本。

在本发明实施例中,若判断所述执行次数以及平均响应时间大于预先设置的范围,识别出相对应的脚本,该脚本为当前数据库中性能较差的脚本,将这种脚本作为目标脚本。

s307,根据所述目标脚本相对应地生成告警通知并发送至管理员。

在本发明实施例中,由于所识别出的目标脚本表示当前数据库中性能较差的脚本,而在数据库异常情况中性能较差的脚本往往是导致数据库出现异常的根据原因,因此所识别出的目标脚本便是导致数据库出现异常的原因。具体地,将所述目标脚本包括脚本的执行次数、平均响应时间、脚本在当前数据库中的位置等信息生成告警通知发送给管理员;由于在告警通知中记录了出现异常的目标脚本的详细信息,因此管理员可以通过该告警通知及时了解到导致数据库异常的原因,并针对相对应的异常以及该告警通知中的详细信息及时做出解决问题的方案并对数据库进行优化,其中,管理员可以是当前数据库的管理员,可以是当前数据库的运维人员,也可以是维护数据库的相关人员,所述告警通知可以通过邮件的形式发送至管理员的邮箱中,另外,在实际应用中所述告警通知的发送形式在此不作限定。

由以上可见,本发明实施例通过获取所述若干个脚本中每个脚本在预设时间内的执行次数,并计算每个脚本的平均响应时间,判断各脚本的所述执行次数以及平均响应时间是否大于预先设置的范围,若所述执行次数以及平均响应时间大于预先设置的范围,识别出相对应的一个或者多个脚本作为目标脚本,从而可以准确地从若干个脚本中获得性能较差的脚本作为目标脚本,并将该目标脚本相对应地生成告警通知并发送至管理员。

本领域普通技术员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

请参阅图6,对应上述一种数据库性能诊断方法,本发明实施例还提出一种数据库性能诊断装置,该装置400包括:第一获取单元401、查询单元402、第一识别单元403、生成单元404。

其中,所述第一获取单元401,用于获取数据库中所有脚本的资源消耗率。在本发明实施例中,数据库中脚本的资源消耗率可以是脚本的cpu使用率,也可以是脚本占用cpu累计时间;如果所述资源消耗率为cpu使用率,则获取数据库中所有脚本的cpu使用率,如果所述资源消耗率为占用cpu累计时间,则获取数据库中所有脚本占用cpu累计时间;其中,装置通过查看cpu使用情况获取脚本的cpu使用率和占用cpu累计时间。

例如图2所示,在装置中,当前数据库的所有脚本包括脚本a、脚本b、脚本c、脚本d,在预设时间段m内,装置获取脚本a的cpu使用率为a1,脚本b的cpu使用率为b1、脚本c的cpu使用率为c1,脚本d的cpu使用率为d1;其中,预设的时间段m可以是半个小时,也可以是一个小时,在此不作限定。

例如图3所示,在装置中,当前数据库的所有脚本包括脚本a、脚本b、脚本c、脚本d,在预设时间段n内,装置获取脚本a的占用cpu累计时间为a2、脚本b的占用cpu累计时间为b2、脚本c的占用cpu累计时间为c2、脚本d的占用cpu累计时间为d2;其中,预设的时间段n可以是半个小时,也可以是一个小时,在此不作限定。

查询单元402,用于在所有脚本中查询预设时间内资源消耗率大于预设资源消耗率的若干个脚本。在本发明实施例中,如果所述资源消耗率为cpu使用率,则在所有脚本中查询预设时间内cpu使用率大于预设cpu使用率的若干脚本;如果所述资源消耗率为占用cpu累计时间,则在所有脚本中查询预设时间内占用cpu累计时间大于预设占用cpu累计时间的若干个脚本;其中,所述预设时间可以是十分钟,可以是半个小时,也可以是一个小时,具体的预设时间可以由用户自行设置,在此不作限定。

需要说明的是,所述预设的资源消耗率可以由用户自行设置,例如,如果所述资源消耗率为cpu使用率,用户可以设置预设的cpu使用率为60%,也可以设置预设的cpu使用率为80%,具体的预设的cpu使用率在此不作限定;如图2所示,在预设时间段m内,如果用户设置预设的cpu使用率为60%,则在当前数据库的所有脚本如脚本a、脚本b、脚本c、脚本d中,cpu使用率大于预设的cpu使用率的脚本包括脚本b和脚本c;如果所述资源消耗率为占用cpu累计时间,用户可以设置预设的占用cpu累计时间为2h(两个小时),也可以设置其它的预设占用cpu累计时间,具体的预设的占用cpu累计时间由用户自行设置,在此不作限定;如图3所示,在预设时间段n内,如果用户设置预设的占用cpu累计时间为2h,则在当前数据库的所有脚本如脚本a、脚本b、脚本c、脚本d中,占用cpu累计时间大于预设占用cpu累计时间的脚本包括脚本b和脚本c。

第一识别单元403,用于识别出所述若干个脚本中性能指标大于预设性能指标的一个或者多个脚本作为目标脚本。在本发明实施例中,所述若干个脚本中的每个脚本在装置cpu中运行存在两个执行指标,包括执行次数以及平均响应时间,其中执行次数指的是脚本在cpu中的运算次数,平均响应时间指的是脚本在cpu中从初始状态到运行状态所需要的时间的平均值,此外,在cpu中脚本的执行次数以及平均响应时间是判断数据库发生异常的主要因素;将脚本在cpu中的执行次数作为第一性能指标,将脚本在cpu中的平均响应时间作为第二性能指标,综合考虑第一性能指标和第二性能指标的结果作为所述脚本的性能指标,其中,可以先单独考虑第一性能指标和第二性能指标并分别得出结果,再将第一性能指示和第二性能指标单独考虑的结果综合起来得到最终的性能指标,也可以通过设置关系式的形式综合考虑第一性能指标和第二性能指标并得到结果作为最终的性能指标。

需要说明的是,所述预设性能指标可以由用户根据综合考虑第一性能指标和第二性能指标的结果自行设置,在此不作限定;综合考虑脚本的执行次数以及平均响应时间的影响是因为执行次数高或者平均响应时间高不一定表示该脚本的性能指标差,此外,通过将所述若干脚本中每个脚本的性能指标与预设的性能指标进行比较,并将识别出的目标脚本定义为性能指标较差的脚本,所识别出的性能指标较差的脚本可以是一个或者多个脚本。

生成单元404,用于根据所述目标脚本相对应地生成告警通知并发送至管理员。在本发明实施例中,由于所识别出的目标脚本表示当前数据库中性能较差的脚本,而在数据库异常情况中性能较差的脚本往往是导致数据库出现异常的根据原因,因此所识别出的目标脚本便是导致数据库出现异常的原因。具体地,将所述目标脚本包括脚本的执行次数、平均响应时间、脚本在当前数据库中的位置等信息生成告警通知发送给管理员;由于在告警通知中记录了出现异常的目标脚本的详细信息,因此管理员可以通过该告警通知及时了解到导致数据库异常的原因,并针对相对应的异常以及该告警通知中的详细信息及时做出解决问题的方案并对数据库进行优化,其中,管理员可以是当前数据库的管理员,可以是当前数据库的运维人员,也可以是维护数据库的相关人员,所述告警通知可以通过邮件的形式发送至管理员的邮箱中,另外,在实际应用中所述告警通知的发送形式在此不作限定。

其中,所述第一获取单元401具体用于:获取数据库中所有脚本的cpu使用率。

所述查询单元402具体用于:在所述脚本中查询预设时间内cpu使用率大于预设cpu使用率的若干个脚本。

所述第一获取单元401还具体用于:获取数据库中所有脚本占用cpu累计时间。

所述查询单元402还具体用于:在所有脚本中查询预设时间内占用cpu累计时间大于预设占用cpu累计时间的若干个脚本。

由以上可见,本发明实施例通过获取数据库中所有脚本的资源消耗率,在所有脚本中查询预设时间内资源消耗率大于预设资源消耗率的若干个脚本,识别出所述若干个脚本中性能指标大于预设性能指标的一个或者多个脚本作为目标脚本,根据所述目标脚本相对应地生成告警通知并发送至管理员,可以自动将导致数据库性能变差的脚本识别出来并将相应的告警通知发送给管理员,以便管理员及时地进行数据库优化、提高数据库性能诊断的效率。

请参阅图7,对应上述一种数据库性能诊断方法,本发明实施例还提一种数据库性能诊断装置,该装置500包括:第一获取单元501、查询单元502、第二获取单元503、第一计算单元504、加权处理单元505、第一判断单元506、第二识别单元507、生成单元508。

其中,所述第一获取单元501,用于获取数据库中所有脚本的资源消耗率。在本发明实施例中,数据库中脚本的资源消耗率可以是脚本的cpu使用率,也可以是脚本占用cpu累计时间;如果所述资源消耗率为cpu使用率,则获取数据库中所有脚本的cpu使用率,如果所述资源消耗率为占用cpu累计时间,则获取数据库中所有脚本占用cpu累计时间;其中,装置通过查看cpu使用情况获取脚本的cpu使用率和占用cpu累计时间。

例如图2所示,在装置中,当前数据库的所有脚本包括脚本a、脚本b、脚本c、脚本d,在预设时间段m内,装置获取脚本a的cpu使用率为a1,脚本b的cpu使用率为b1、脚本c的cpu使用率为c1,脚本d的cpu使用率为d1;其中,预设的时间段m可以是半个小时,也可以是一个小时,在此不作限定。

例如图3所示,在装置中,当前数据库的所有脚本包括脚本a、脚本b、脚本c、脚本d,在预设时间段n内,装置获取脚本a的占用cpu累计时间为a2、脚本b的占用cpu累计时间为b2、脚本c的占用cpu累计时间为c2、脚本d的占用cpu累计时间为d2;其中,预设的时间段n可以是半个小时,也可以是一个小时,在此不作限定。

查询单元502,用于在所有脚本中查询预设时间内资源消耗率大于预设资源消耗率的若干个脚本。在本发明实施例中,如果所述资源消耗率为cpu使用率,则在所有脚本中查询预设时间内cpu使用率大于预设cpu使用率的若干脚本;如果所述资源消耗率为占用cpu累计时间,则在所有脚本中查询预设时间内占用cpu累计时间大于预设占用cpu累计时间的若干个脚本;其中,所述预设时间可以是十分钟,可以是半个小时,也可以是一个小时,具体的预设时间可以由用户自行设置,在此不作限定。

需要说明的是,所述预设的资源消耗率可以由用户自行设置,例如,如果所述资源消耗率为cpu使用率,用户可以设置预设的cpu使用率为60%,也可以设置预设的cpu使用率为80%,具体的预设的cpu使用率在此不作限定;如图2所示,在预设时间段m内,如果用户设置预设的cpu使用率为60%,则在当前数据库的所有脚本如脚本a、脚本b、脚本c、脚本d中,cpu使用率大于预设的cpu使用率的脚本包括脚本b和脚本c;如果所述资源消耗率为占用cpu累计时间,用户可以设置预设的占用cpu累计时间为2h(两个小时),也可以设置其它的预设占用cpu累计时间,具体的预设的占用cpu累计时间由用户自行设置,在此不作限定;如图3所示,在预设时间段n内,如果用户设置预设的占用cpu累计时间为2h,则在当前数据库的所有脚本如脚本a、脚本b、脚本c、脚本d中,占用cpu累计时间大于预设占用cpu累计时间的脚本包括脚本b和脚本c。

第二获取单元503,用于获取所述若干个脚本中每个脚本在预设时间内的执行次数。在本发明实施例中,所述执行次数作为脚本在装置cpu中运行的执行指标,装置可以通过脚本在cpu中的使用情况获取在预设时间内所述脚本的执行次数,其中,该预设时间可以是半个小时,也可以是一个小时,具体的预设时间可以由用户自行设置,在此不作限定。

第一计算单元504,用于计算所述若干个脚本中每个脚本在预设时间内的平均响应时间。在本发明实施例中,所述平均响应时间指的是脚本在cpu中从初始状态到运行状态所需要的时间的平均值,装置可以通过设置预设时间,并记录下在该预设时间内每次执行脚本时所需要的时间,根据所记录下的时间计算多次执行脚本时所需要的平均时间作为该平均响应时间;其中,所述预设时间可以是半个小时,也可以是一个小时,具体的预设时间可以由用户自行设置,在此不作限定。

加权处理单元505,用于对各脚本的所述执行次数以及所述平均响应时间按照预设规则进行加权处理得到相对应的加权阈值。在本发明实施例中,装置后台会将各脚本的所述执行次数和平均响应时间进行加权计算得出相对应的加权阈值,其中,用户可以自行定义权重比例,计算方法可以为:针对执行次数设置权重为0.8,再进行加权计算得到执行次数的加权值,针对平均响应时间设置权重为0.2,再进行加权计算得出平均响应时间的加权值,那么执行次数和平均响应时间二者的加权值之和即为所述加权阈值,该加权阈值用于衡量脚本对数据库性能的影响度,其中,加权阈值越大、与该加权阈值相对应的脚本对数据库性能的影响度就越大、相对应的脚本则为当前数据库中性能较差的脚本。

第一判断单元506,用于判断所述加权阈值是否大于预先设置的阈值。在本发明实施例中,装置后台会预存有预设阈值,预存的预设阈值可以由用户自行设定,当判断所述加权阈值大于该预设阈值时,则相对应的脚本为当前数据库中性能较差的脚本;当判断所述加权阈值小于该预设阈值时,则相对应的脚本不是当前数据库中性能较差的脚本。

第二识别单元507,用于将所述加权阈值大于预先设置的阈值的一个或者多个脚本作为目标脚本。在本发明实施例中,若判断所述加权阈值大于预设的阈值,相对应的脚本为当前数据库中性能较差的脚本,将这种脚本作为目标脚本。

生成单元508,用于根据所述目标脚本相对应地生成告警通知并发送到管理员。在本发明实施例中,由于所识别出的目标脚本表示当前数据库中性能较差的脚本,而在数据库异常情况中性能较差的脚本往往是导致数据库出现异常的根据原因,因此所识别出的目标脚本便是导致数据库出现异常的原因。具体地,将所述目标脚本包括脚本的执行次数、平均响应时间、脚本在当前数据库中的位置等信息生成告警通知发送给管理员;由于在告警通知中记录了出现异常的目标脚本的详细信息,因此管理员可以通过该告警通知及时了解到导致数据库异常的原因,并针对相对应的异常以及该告警通知中的详细信息及时做出解决问题的方案并对数据库进行优化,其中,管理员可以是当前数据库的管理员,可以是当前数据库的运维人员,也可以是维护数据库的相关人员,所述告警通知可以通过邮件的形式发送至管理员的邮箱中,另外,在实际应用中所述告警通知的发送形式在此不作限定。

由以上可见,本发明实施例通过获取所述若干个脚本中每个脚本在预设时间内的执行次数,并计算每个脚本的平均响应时间,再对各脚本的所述执行次数以及所述平均响应时间按照预设规则进行加权处理得到相对应的加权阈值,若所述加权阈值大于预先设置的阈值,将所述加权阈值大于预先设置的阈值的一个或者多个脚本作为目标脚本,从而可以准确地从若干个脚本中获得性能较差的脚本作为目标脚本,并将该目标脚本相对应地生成告警通知并发送至管理员。

请参阅图8,对应上述一种数据库性能诊断方法,本发明实施例还提出一种数据库性能诊断装置,该装置600包括:第一获取单元601、查询单元602、第三获取单元603、第二计算单元604、第二判断单元605、第三识别单元606、生成单元607。

其中,所述第一获取单元601,用于获取数据库中所有脚本的资源消耗率。在本发明实施例中,数据库中脚本的资源消耗率可以是脚本的cpu使用率,也可以是脚本占用cpu累计时间;如果所述资源消耗率为cpu使用率,则获取数据库中所有脚本的cpu使用率,如果所述资源消耗率为占用cpu累计时间,则获取数据库中所有脚本占用cpu累计时间;其中,装置通过查看cpu使用情况获取脚本的cpu使用率和占用cpu累计时间。

例如图2所示,在装置中,当前数据库的所有脚本包括脚本a、脚本b、脚本c、脚本d,在预设时间段m内,装置获取脚本a的cpu使用率为a1,脚本b的cpu使用率为b1、脚本c的cpu使用率为c1,脚本d的cpu使用率为d1;其中,预设的时间段m可以是半个小时,也可以是一个小时,在此不作限定。

例如图3所示,在装置中,当前数据库的所有脚本包括脚本a、脚本b、脚本c、脚本d,在预设时间段n内,装置获取脚本a的占用cpu累计时间为a2、脚本b的占用cpu累计时间为b2、脚本c的占用cpu累计时间为c2、脚本d的占用cpu累计时间为d2;其中,预设的时间段n可以是半个小时,也可以是一个小时,在此不作限定。

查询单元602,用于在所有脚本中查询预设时间内资源消耗率大于预设资源消耗率的若干个脚本。在本发明实施例中,如果所述资源消耗率为cpu使用率,则在所有脚本中查询预设时间内cpu使用率大于预设cpu使用率的若干脚本;如果所述资源消耗率为占用cpu累计时间,则在所有脚本中查询预设时间内占用cpu累计时间大于预设占用cpu累计时间的若干个脚本;其中,所述预设时间可以是十分钟,可以是半个小时,也可以是一个小时,具体的预设时间可以由用户自行设置,在此不作限定。

需要说明的是,所述预设的资源消耗率可以由用户自行设置,例如,如果所述资源消耗率为cpu使用率,用户可以设置预设的cpu使用率为60%,也可以设置预设的cpu使用率为80%,具体的预设的cpu使用率在此不作限定;如图2所示,在预设时间段m内,如果用户设置预设的cpu使用率为60%,则在当前数据库的所有脚本如脚本a、脚本b、脚本c、脚本d中,cpu使用率大于预设的cpu使用率的脚本包括脚本b和脚本c;如果所述资源消耗率为占用cpu累计时间,用户可以设置预设的占用cpu累计时间为2h(两个小时),也可以设置其它的预设占用cpu累计时间,具体的预设的占用cpu累计时间由用户自行设置,在此不作限定;如图3所示,在预设时间段n内,如果用户设置预设的占用cpu累计时间为2h,则在当前数据库的所有脚本如脚本a、脚本b、脚本c、脚本d中,占用cpu累计时间大于预设占用cpu累计时间的脚本包括脚本b和脚本c。

第三获取单元603,用于获取所述若干个脚本中每个脚本在预设时间内的执行次数。在本发明实施例中,所述执行次数作为脚本在装置cpu中运行的执行指标,装置可以通过脚本在cpu中的使用情况获取在预设时间内所述脚本的执行次数,其中,该预设时间可以是半个小时,也可以是一个小时,具体的预设时间可以由用户自行设置,在此不作限定。

第二计算单元604,用于计算所述若干个脚本中每个脚本在预设时间内的平均响应时间。在本发明实施例中,所述平均响应时间指的是脚本在cpu中从初始状态到运行状态所需要的时间的平均值,装置可以通过设置预设时间,并记录下在该预设时间内每次执行脚本时所需要的时间,根据所记录下的时间计算多次执行脚本时所需要的平均时间作为该平均响应时间;其中,所述预设时间可以是半个小时,也可以是一个小时,具体的预设时间可以由用户自行设置,在此不作限定。

第二判断单元605,用于判断各脚本的所述执行次数以及平均响应时间是否大于预先设置的范围。在本发明实施例中,预先设置所述执行次数的范围以及平均响应时间的范围,预先设置的范围可以由用户自行设定。若所述若干个脚本中每个脚本的执行次数落入预先设置的范围,与该执行次数相对应的脚本不是当前数据库中性能较差的脚本;若所述若干个脚本中每个脚本的执行次数大于预先设置的范围,与该执行次数相对应的脚本为当前数据库中性能较差的脚本。

第三识别单元606,用于识别出所述执行次数以及平均响应时间大于预先设置的范围的一个或者多个脚本作为目标脚本。在本发明实施例中,若判断所述执行次数以及平均响应时间大于预先设置的范围,识别出相对应的脚本,该脚本为当前数据库中性能较差的脚本,将这种脚本作为目标脚本。

生成单元607,用于根据所述目标脚本相对应地生成告警通知并发送至管理员。在本发明实施例中,由于所识别出的目标脚本表示当前数据库中性能较差的脚本,而在数据库异常情况中性能较差的脚本往往是导致数据库出现异常的根据原因,因此所识别出的目标脚本便是导致数据库出现异常的原因。具体地,将所述目标脚本包括脚本的执行次数、平均响应时间、脚本在当前数据库中的位置等信息生成告警通知发送给管理员;由于在告警通知中记录了出现异常的目标脚本的详细信息,因此管理员可以通过该告警通知及时了解到导致数据库异常的原因,并针对相对应的异常以及该告警通知中的详细信息及时做出解决问题的方案并对数据库进行优化,其中,管理员可以是当前数据库的管理员,可以是当前数据库的运维人员,也可以是维护数据库的相关人员,所述告警通知可以通过邮件的形式发送至管理员的邮箱中,另外,在实际应用中所述告警通知的发送形式在此不作限定。

由以上可见,本发明实施例通过获取所述若干个脚本中每个脚本在预设时间内的执行次数,并计算每个脚本的平均响应时间,判断各脚本的所述执行次数以及平均响应时间是否大于预先设置的范围,若所述执行次数以及平均响应时间大于预先设置的范围,识别出相对应的一个或者多个脚本作为目标脚本,从而可以准确地从若干个脚本中获得性能较差的脚本作为目标脚本,并将该目标脚本相对应地生成告警通知并发送至管理员。

在硬件实现上,以上第一获取单元401、查询单元402、第一识别单元403、生成单元404等可以以硬件形式内嵌于或独立于数据处理的装置中,也可以以软件形式存储于数据处理装置的存储器中,以便处理器调用执行以上各个单元对应的操作。该处理器可以为中央处理单元(cpu)、微处理器、单片机等。

图9为本发明一种数据库性能诊断设备的结构组成示意图。如图9所示,该设备700可包括:输入装置701、输出装置702、收发装置703、存储器704以及处理器705,其中:

所述输入装置701,用于接收外部访问控制设备的输入数据。具体实现中,本发明实施例所述的输入装置701可包括键盘、鼠标、光电输入装置、声音输入装置、触摸式输入装置、扫描仪等。

所述输出装置702,用于对外输出访问控制设备的输出数据。具体实现中,本发明实施例所述的输出装置702可包括显示器、扬声器、打印机等。

所述收发装置703,用于通过通信链路向其他设备发送数据或者从其他设备接收数据。具体实现中,本发明实施例的收发装置703可包括射频天线等收发器件。

所述存储器704,用于存储实现数据库性能诊断的程序。本发明实施例的存储器704可以是系统存储器,比如,挥发性的(诸如ram),非易失性的(诸如rom,闪存等),或者两者的结合。具体实现中,本发明实施例的存储器704还可以是系统之外的外部存储器,比如,磁盘、光盘、磁带等。

所述处理器705,用于运行所述存储器704中存储的实现数据库性能诊断的程序,并执行如下操作:

获取数据库中所有脚本的资源消耗率;

在所有脚本中查询预设时间内资源消耗率大于预设资源消耗率的若干个脚本;

识别出所述若干个脚本中性能指标大于预设性能指标的一个或者多个脚本作为目标脚本;

根据所述目标脚本相对应地生成告警通知并发送至管理员。

进一步地,所述识别出所述若干个脚本中性能指标大于预设性能指标的一个或者多个脚本作为目标脚本,包括:

获取所述若干个脚本中每个脚本在预设时间内的执行次数;

计算所述若干个脚本中每个脚本在预设时间内的平均响应时间;

对各脚本的所述执行次数以及所述平均响应时间按照预设规则进行加权处理得到相对应的加权阈值;

判断所述加权阈值是否大于预先设置的阈值;

将所述加权阈值大于预先设置的阈值的一个或者多个脚本作为目标脚本。

进一步地,所述识别出所述若干个脚本中性能指标大于预设性能指标的一个或者多个脚本作为目标脚本,包括:

获取所述若干个脚本中每个脚本在预设时间内的执行次数;

计算所述若干个脚本中每个脚本在预设时间内的平均响应时间;

判断各脚本的所述执行次数以及平均响应时间是否大于预先设置的范围;

识别出所述执行次数以及平均响应时间大于预先设置的范围的一个或者多个脚本作为目标脚本。

进一步地,所述资源消耗率包括cpu使用率,所述获取数据库中所有脚本的资源消耗率,包括:

获取数据库中所有脚本的cpu使用率;

所述在所有脚本中查询预设时间内资源消耗率大于预设资源消耗率的若干个脚本,包括:

在所有脚本中查询预设时间内cpu使用率大于预设cpu使用率的若干个脚本。

进一步地,所述资源消耗率包括占用cpu累计时间,所述获取数据库中所有脚本的资源消耗率,包括:

获取数据库中所有脚本占用cpu累计时间;

所述在所有脚本中查询预设时间内资源消耗率大于预设资源消耗率的若干个脚本,包括:

在所有脚本中查询预设时间内占用cpu累计时间大于预设占用cpu累计时间的若干个脚本。

本领域技术人员可以理解,图9中示出的数据库性能诊断设备的实施例并不构成对数据库性能诊断设备具体构成的限定,在其他实施例中,数据库性能诊断设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,数据库性能诊断设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图9所示实施例一致,在此不再赘述。

一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序可被一个或者一个以上的处理器用来执行,以实现以下步骤:

获取数据库中所有脚本的资源消耗率;

在所有脚本中查询预设时间内资源消耗率大于预设资源消耗率的若干个脚本;

识别出所述若干个脚本中性能指标大于预设性能指标的一个或者多个脚本作为目标脚本;

根据所述目标脚本相对应地生成告警通知并发送至管理员。

进一步地,所述识别出所述若干个脚本中性能指标大于预设性能指标的一个或者多个脚本作为目标脚本,包括:

获取所述若干个脚本中每个脚本在预设时间内的执行次数;

计算所述若干个脚本中每个脚本在预设时间内的平均响应时间;

对各脚本的所述执行次数以及所述平均响应时间按照预设规则进行加权处理得到相对应的加权阈值;

判断所述加权阈值是否大于预先设置的阈值;

将所述加权阈值大于预先设置的阈值的一个或者多个脚本作为目标脚本。

进一步地,所述识别出所述若干个脚本中性能指标大于预设性能指标的一个或者多个脚本作为目标脚本,包括:

获取所述若干个脚本中每个脚本在预设时间内的执行次数;

计算所述若干个脚本中每个脚本在预设时间内的平均响应时间;

判断各脚本的所述执行次数以及平均响应时间是否大于预先设置的范围;

识别出所述执行次数以及平均响应时间大于预先设置的范围的一个或者多个脚本作为目标脚本。

进一步地,所述资源消耗率包括cpu使用率,所述获取数据库中所有脚本的资源消耗率,包括:

获取数据库中所有脚本的cpu使用率;

所述在所有脚本中查询预设时间内资源消耗率大于预设资源消耗率的若干个脚本,包括:

在所有脚本中查询预设时间内cpu使用率大于预设cpu使用率的若干个脚本。

进一步地,所述资源消耗率包括占用cpu累计时间,所述获取数据库中所有脚本的资源消耗率,包括:

获取数据库中所有脚本占用cpu累计时间;

所述在所有脚本中查询预设时间内资源消耗率大于预设资源消耗率的若干个脚本,包括:

在所有脚本中查询预设时间内占用cpu累计时间大于预设占用cpu累计时间的若干个脚本。

本发明前述的存储介质包括:磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等各种可以存储程序代码的介质。

本发明所有实施例中的单元可以通过通用集成电路,例如cpu(centralprocessingunit,中央处理器),或通过asic(applicationspecificintegratedcircuit,专用集成电路)来实现。

本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。

本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1