CN108255710B - 一种脚本的异常检测方法及其终端 - Google Patents

一种脚本的异常检测方法及其终端 Download PDF

Info

Publication number
CN108255710B
CN108255710B CN201711461966.5A CN201711461966A CN108255710B CN 108255710 B CN108255710 B CN 108255710B CN 201711461966 A CN201711461966 A CN 201711461966A CN 108255710 B CN108255710 B CN 108255710B
Authority
CN
China
Prior art keywords
script
sql
consumption
variable
parameter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711461966.5A
Other languages
English (en)
Other versions
CN108255710A (zh
Inventor
吴丽娜
肖涵月
何恩赐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Life Insurance Company of China Ltd
Original Assignee
Ping An Life Insurance Company of China Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ping An Life Insurance Company of China Ltd filed Critical Ping An Life Insurance Company of China Ltd
Priority to CN201711461966.5A priority Critical patent/CN108255710B/zh
Publication of CN108255710A publication Critical patent/CN108255710A/zh
Application granted granted Critical
Publication of CN108255710B publication Critical patent/CN108255710B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Abstract

本发明适用于数据库技术领域,提供了一种脚本的异常检测方法及其终端,包括:获取各个结构化查询语言SQL脚本的运行状态参数;根据各个SQL脚本的运行状态参数,计算各个SQL脚本的第一消耗特征值;选取前N个第一消耗特征值对应的SQL脚本,生成脚本消耗异常列表;分别获取目标SQL脚本中可变参数取各个变量值时对应的第二消耗特征值;若存在一个所述可变参数取某一变量值时对应的第二消耗特征值大于消耗特征阈值,则识别目标SQL脚本为异常脚本。本发明通过获取各个变量值对应的消耗特征值,作为判定SQL脚本是否为异常脚本的依据,从而实现了自动对异常SQL脚本进行识别的目的,提高了检测效率。

Description

一种脚本的异常检测方法及其终端
技术领域
本发明属于数据库技术领域,尤其涉及一种脚本的异常检测方法及其终端。
背景技术
SQL脚本被广泛应用于网络服务领域,因此SQL脚本运行效率的高低决定着服务请求的反应速率,若SQL脚本运行发生异常,将导致用户发起的服务请求需要较长时间进行处理,并会出现服务请求堆积的情况。因此,如何对SQL脚本的异常情况进行快速检测显得尤为重要。而现有的SQL脚本的异常检测技术,需要管理员对SQL语言进行人工分析,检测效率较低,并且依赖管理员具有较高的技术水平,从而提高了维护的成本。
发明内容
有鉴于此,本发明实施例提供了一种脚本的异常检测方法及其终端,以解决现有的脚本的异常检测技术,需要管理员对SQL语言进行人工分析,检测效率较低,并且依赖管理员具有较高的技术水平,从而提高了维护的成本的问题。
本发明实施例的第一方面提供了一种脚本的异常检测方法,所述脚本的异常检测方法包括:
获取各个结构化查询语言SQL脚本的运行状态参数;每个所述SQL脚本包含至少一个可变参数;
根据各个所述SQL脚本的运行状态参数,计算各个所述SQL脚本的第一消耗特征值;其中,所述第一消耗特征值用于表示所述SQL脚本对设备资源的占用情况;
从大到小对各个所述第一消耗特征值进行排序后,选取前N个所述第一消耗特征值对应的SQL脚本,生成脚本消耗异常列表;其中,所述N为小于所述SQL脚本的总数量的正整数;
从所述脚本消耗异常列表中选取出目标SQL脚本,分别获取所述目标SQL脚本中所述可变参数取各个变量值时对应的第二消耗特征值;
若存在一个所述可变参数取某一变量值时对应的第二消耗特征值大于消耗特征阈值,则识别该目标SQL脚本为异常脚本。
本发明实施例的第二方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取各个结构化查询语言SQL脚本的运行状态参数;每个所述SQL脚本包含至少一个可变参数;
根据各个所述SQL脚本的运行状态参数,计算各个所述SQL脚本的第一消耗特征值;其中,所述第一消耗特征值用于表示所述SQL脚本对设备资源的占用情况;
从大到小对各个所述第一消耗特征值进行排序后,选取前N个所述第一消耗特征值对应的SQL脚本,生成脚本消耗异常列表;其中,所述N为小于所述SQL脚本的总数量的正整数;
从所述脚本消耗异常列表中选取出目标SQL脚本,分别获取所述目标SQL脚本中所述可变参数取各个变量值时对应的第二消耗特征值;
若存在一个所述可变参数取某一变量值时对应的第二消耗特征值大于消耗特征阈值,则识别该目标SQL脚本为异常脚本。
本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取各个结构化查询语言SQL脚本的运行状态参数;每个所述SQL脚本包含至少一个可变参数;
根据各个所述SQL脚本的运行状态参数,计算各个所述SQL脚本的第一消耗特征值;其中,所述第一消耗特征值用于表示所述SQL脚本对设备资源的占用情况;
从大到小对各个所述第一消耗特征值进行排序后,选取前N个所述第一消耗特征值对应的SQL脚本,生成脚本消耗异常列表;其中,所述N为小于所述SQL脚本的总数量的正整数;
从所述脚本消耗异常列表中选取出目标SQL脚本,分别获取所述目标SQL脚本中所述可变参数取各个变量值时对应的第二消耗特征值;
若存在一个所述可变参数取某一变量值时对应的第二消耗特征值大于消耗特征阈值,则识别该目标SQL脚本为异常脚本。
实施本发明实施例提供的一种脚本的异常检测方法及其终端具有以下有益效果:
本发明实施例通过获取SQL脚本的运行状态参数,并通过该运行状态参数确定该SQL脚本在预设的时间段内的消耗情况,得到第一消耗特征值,继而终端设备选取消耗较大的N个SQL脚本,进一步确定上述SQL脚本是否存在异常情况,因而终端设备将根据消耗较大的N个SQL脚本生成脚本消耗异常列表,并从脚本异常消耗列表中选取出目标SQL脚本,获取该目标SQL脚本在可变参数取不同变量值时所对应的第二消耗特征参数,将各个第二消耗特征参数与预设的消耗特征阈值进行比较,确定该SQL脚本是否为异常脚本。与现有的脚本的异常检测方法相比,本发明实施例无需数据库的管理员对SQL脚本的异常情况进行手动排查,终端设备自动生成一个存在异常几率较大的脚本异常消耗列表,缩小了管理员的检测范围,并从中定位出目标SQL脚本,进一步确定该SQL脚本是否存在异常,根据该目标SQL脚本的可变参数取不同变量值时的消耗情况,确定该SQL脚本是否异常,无需用户进行异常识别,大大提高了异常检测的准确率以及响应速率。另一方面,由于异常检测的过程主要通过终端设备完成,对于管理员的技术水平要求较低,从而也降低了数据库的维护成本。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一实施例提供的一种脚本的异常检测方法的实现流程图;
图2是本发明第二实施例提供的一种脚本的异常检测方法的具体实现流程图;
图3是本发明第三实施例提供的一种脚本的异常检测方法S101的具体实现流程图;
图4是本发明第四实施例提供的一种脚本的异常检测方法S102的具体实现流程图;
图5是本发明第五实施例提供的一种脚本的异常检测方法S103的具体实现流程图;
图6是本发明一实施例提供的一种脚本的异常检测终端的结构框图;
图7是本发明一实施例提供的一种终端设备的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例通过获取SQL脚本的运行状态参数,并通过该运行状态参数确定该SQL脚本在预设的时间段内的消耗情况,得到第一消耗特征值,继而终端设备选取消耗较大的N个SQL脚本,进一步确定上述SQL脚本是否存在异常情况,因而终端设备将根据消耗较大的N个SQL脚本生成脚本消耗异常列表,并从脚本异常消耗列表中选取出目标SQL脚本,获取该目标SQL脚本在可变参数取不同变量值时所对应的第二消耗特征参数,将各个第二消耗特征参数与预设的消耗特征阈值进行比较,确定该SQL脚本是否为异常脚本,解决了现有的脚本的异常检测技术,需要管理员对SQL语言进行人工分析,检测效率较低,并且依赖管理员具有较高的技术水平,从而提高了维护的成本的问题。
在本发明实施例中,流程的执行主体为脚本的异常检测终端,终端设备包括手机、计算机设备、平板电脑、服务器等设备,特别地,该终端设备具体为一部放于数据库系统中的SQL脚本的检测终端,通过获取各个SQL脚本在数据库中的运行情况,执行异常检测操作。图1示出了本发明第一实施例提供的脚本的异常检测方法的实现流程图,详述如下:
在S101中,获取各个结构化查询语言SQL脚本的运行状态参数;每个所述SQL脚本包含至少一个可变参数。
在本实施例中,异常检测的触发条件包括手动触发以及自动触发两种模式。其中,手动触发具体为:管理员在终端设备上生成一个异常检测启动指令,或通过用户终端向终端设备发送一个异常检测启动指令,终端设备若接收到该异常检测启动指令后,则执行S101的相关操作。而自动触发具体为:终端设备设置有异常检测启动时机,若终端设备检测到当前状态与预设的异常检测启动时机匹配,则执行S101的相关操作。
可选地,在本实施中,所述异常检测启动时机可以为一预设的检测周期,终端设备在监测到当前时刻满足该检测周期,则执行S101的相关操作。所述异常检测启动时机还可以为一运行消耗阈值,例如资源占用率,终端设备在监测到当前时刻待检测终端的运行消耗值大于或等于预设的运行消耗阈值,则执行S101的相关操作。由于设备的消耗过大,一般是由于SQL脚本异常而导致的,因此可通过运行消耗的情况作为触发条件,与周期触发的方式相比,可减少不必要的检测流程,从而提高设备的资源利用率。
在本实施例中,为了节省SQL脚本数据库中SQL脚本的数量,用户可将多个SQL脚本整合为一个包含可变参数的SQL脚本,将上述进行整合的SQL脚本之间的差异参数值,集成于一个可变参数进行表示。例如,第一SQL脚本中的地区这一栏中所设置的参数值为“深圳”,而第二SQL脚本中的地区这一栏中所设置的参数值为“广州”,因此,可将上述两个SQL脚本进行整合,填写“广州”以及“深圳”对应的位置用一“地区可变参数”来表示,实现将两个SQL脚本整合为一个SQL脚本。通过上述方式,可以将脚本数据库中,主体内容大体相同,只有部分参量存在差异的SQL脚本进行合并,大大减少了数据库中冗余的脚本数,提高了数据库的存储效率。
在本实施例中,SQL脚本可运行与终端设备的数据库内,该情况下,待检测的终端即为本发明实施例提供的终端设备,即检测本地数据库中各个SQL脚本是否存在异常情况;SQL脚本也可以运行与终端设备外的其他数据库服务器中,在该情况下,终端设备即作为一独立的检测终端,监控该数据库服务器中的SQL脚本是否存在异常情况。特别地,终端设备还可以检测一数据库系统,该数据库系统中包含多个数据库服务器,且各个数据库服务器均从同一个SQL脚本资源库中提取对应的SQL脚本进行查询操作。其中,SQL脚本资源库中存储有多个SQL脚本,用于满足不同用户的查询需求,例如用户需要查询季度奖金相关的数据,则通过调用第一SQL脚本进行查询;用户需要统计车险客户的续保情况,则通过调用第二SQL脚本进行查询。
在本实施例中,终端设备在接收到用户的检测指令或满足对应的检测触发条件时,将分别获取各个SQL脚本的运行状态参数,特别地,该SQL脚本的运行状态参数中包含多个参数项,每个参数项对应一个参数值,分别表征不同的运行特征。其中,该SQL脚本的运作状态参数包括但不限于:运算资源占用参数、平均运行时间参数、内容占用参数以及调用次数。运行资源占用参数具体为调用该SQL脚本时,执行一次查询流程,所需消耗的运算资源,可选地,该运行资源占用参数可用CPU的平均占用个数来表示。
在S102中,根据各个所述SQL脚本的运行状态参数,计算各个所述SQL脚本的第一消耗特征值;其中,所述第一消耗特征值用于表示所述SQL脚本对设备资源的占用情况。
在本实施例中,终端设备在获取了各个SQL脚本的运行状态参数后,将根据各个运行状态参数获取SQL脚本的消耗情况,因此将SQL脚本对应的运行状态参数中包含的多个参数值,导入到预设的消耗特征转换模型中,以通过运行状态参数计算其对应的第一消耗特征值,通过该第一消耗特征值表征该SQL脚本的消耗情况。
可选地,在本实施例中,该消耗特征转换模型可以为一哈希函数,终端设备将所述SQL脚本的运作状态参数输入到该哈希函数中,继而根据各个参数值所在的参数范围,得到一个对应的第一消耗特征值。
可选地,在本实施例中,该第一消耗特征值具体为一消耗等级。在该情况下,终端设备除了获取用户当前SQL脚本的运行状态参数外,该获取该SQL脚本的平均运行状态参数,将当前的运行状态参数与平均状态参数进行比对,确定当前的消耗等级。该消耗等级包括但不限于:“远低于平均消耗”、“低于平均消耗”、“维持正常水平”、“高于平均消耗”以及“远高于平均消耗”,终端设备通过显示该消耗等级,可直观获知各个SQL脚本的消耗情况,提高了用户的信息获取效率。
在S103中,从大到小对各个所述第一消耗特征值进行排序后,选取前N个所述第一消耗特征值对应的SQL脚本,生成脚本消耗异常列表;其中,所述N为小于所述SQL脚本的总数量的正整数。
在本实施例中,终端设备在计算了各个SQL脚本对应的第一消耗特征值后,将根据第一消耗特征值的大小进行排序,其中该第一消耗特征值数值越大,则表示其资源占用越多,消耗越大,而该第一消耗特征值数值越小,则表示其资源占用越小,消耗也较小,特别地,第一消耗特征值较大的SQL脚本其对应的运行时间越长。因此,经过上述排序后,终端设备将得到一个SQL资源消耗序列,并根据预设的N值,从该序列中截取数值较大的N个SQL脚本,即上述的前N个第一消耗特征值对应的SQL脚本,生成脚本消耗异常列表,并通过显示模块进行显示,或直接将该脚本消耗列表发送给数据库管理员对应的用户终端。
在本实施例中,该N的数值可根据用户的需求进行设置,可以根据系统中包含的SQL脚本的数量确定该N的数值。例如,从SQL脚本资源库中,提取10%的SQL脚本生成异常消耗列表,则终端设备首先获取该SQL脚本资源中包含的脚本数量,并通过预设的比例值,计算该N值。特别地,该N值可根据当前监测时间的不同,配置对应的N值。对于繁忙时间,可能需要进行精细SQL脚本异常检测,则该N值较大;而对于空闲时间,系统的空闲资源较大,因此可进行粗略SQL脚本异常检测,则该N值较小。
在本实施例中,若存在多个SQL脚本的第一消耗特征值相同,因而选取的SQL脚本数M大于预设的N值,在该情况中,终端设备可将上述M个SQL脚本生成脚本消耗异常列表,且该列表中包含消耗特征较大的M个SQL脚本;终端设备还可以将根据用户设置的检测模式,从M个SQL脚本中,选取N个SQL脚本。具体地,由于不同的SQL脚本中的运行状态参数包含多个参数项,因此可根据参数项的数值的大小进行排序,确定N个SQL脚本。例如,该N值为3,而消耗值第三大的SQL脚本有2个,因此选取得到的SQL脚本数为4,第一大的SQL脚本、第二大的SQL脚本以及两个并列第三大的SQL脚本。此时,终端设备获取当前的检测模式为运行时间优先模式,则根据两个并列第三大的SQL脚本中运行状态参数的运行时间值,选取数值较大的一个SQL脚本,作为异常消耗的SQL脚本,与前两个SQL脚本生成脚本消耗异常列表。
在S104中,从所述脚本消耗异常列表中选取出目标SQL脚本,分别获取所述目标SQL脚本中所述可变参数取各个变量值时对应的第二消耗特征值。
在本实施例中,用户可通过终端设备的显示模块,查看该脚本消耗异常列表,从该列表中选取一个或多个SQL脚本作为目标SQL脚本,其中,该目标SQL脚本具体为预判该SQL脚本为异常脚本,但需要进一步进行检测确认的脚本。当然,终端设备也可以通过预设的脚本选取算法,从脚本异常消耗列表中,选取目标SQL脚本,也可以依次对上述脚本异常消耗列表中的所有SQL脚本一一进行排查。具体地,该预设的脚本选取算法可以为:根据各个SQL脚本的中包含的可变参数的个数,选取可变参数个数最多的一个SQL脚本作为目标SQL脚本。
可选地,终端设备还可以从该脚本消耗异常列表中任意选取一个SQL脚本作为目标SQL脚本,并执行S104以及S105的相关操作,直到对异常消耗列表中所有SQL脚本均进行异常检测。
在本实施例中,终端设备在接收到目标脚本选取指令后,将获取该目标脚本选取指令中包含的脚本标识,并将该脚本标识与脚本消耗异常列表中的各个SQL脚本的脚本标识进行匹配,确定该选取指令对应的SQL脚本,识别为目标SQL脚本。
在本实施例中,该脚本标识可以为SQL脚本的文件名、脚本编号、列表中的序列号,还可以是用户在终端设备的触控模块上从脚本消耗异常列表中选取目标SQL脚本时,触发的位置坐标。
在本实施例中,终端设备在调用SQL脚本时,根据其实际的使用需求,设置本次执行SQL脚本时各个可变参数的具体变量值。因此,每次调用SQL脚本时可变参数均对应一固定的值,而当次运行过程所产生的消耗,即为SQL脚本内可变参数取该值所对应的消耗,即识别为可变参数取该变量值时对应的第二消耗特征值。终端设备将统计目标SQL脚本中可变参数取各个可变值时所对应的第二消耗特征值,特别地,若可变参数中存在一个变量值不具备对应的第二消耗特征值,即取该变量值时所对应的SQL脚本并未被调用过,则识别该变量值所对应的第二消耗特征值为0。
具体地,获取第二消耗特征值的过程与获取第一消耗特征值的过程类似,均是获取SQL脚本中可变参数取各个变量值时所对应的运行状态参数,继而通过运行状态参数计算第二消耗特征值。具体过程可参见S102的相关阐述,在此不再赘述。
需要说明的是,若目标SQL脚本存在两个或以上的可变参数,且每个可变参数可取多个变量值,则计算其中一个可变参数取某一变量值时对应的第二消耗特征值的过程中,其他可变参数固定取一种变量值。例如可变参数A可以取1、2、3三种变量值,而可变参数B可以取“广州”、“深圳”、“东莞”三种变量值,若在计算可变参数A取各个变量值对应的第二消耗特征值时,可保持可变参数B固定取“广州”这一参数值,即计算目标SQL脚本取{“1”、“广州”}、{“2”、“广州”}以及{“3”、“广州”}时对应的消耗特征值,作为第二特征消耗值。对于可变参数是两个以上的情况同样采用上述方式进行计算。
可选地,在计算某一可变参数各个变量值对应的第二消耗特征值时,也可以将其他可变参数取不同变量值所对应的平均值作为第二消耗特征值。如上例子所述,在计算可变参数A取“1”时对应的第二消耗特征值,可获取{“1”、“广州”}、{“1”、“深圳”}以及{“1”、“东莞”}三个消耗特征值,并计算三个消耗特征值对应的平均值,作为可变参数A取“1”时对应的第二消耗特征值。
在S105中,若存在一个所述可变参数取某一变量值时对应的第二消耗特征值大于消耗特征阈值,则识别该目标SQL脚本为异常脚本。
在本实施例中,终端设备将获取得到的各个第二消耗特征值与预设的消耗特征阈值进行比较,若各个第二消耗特征值均小于或等于预设的消耗特征值阈值,则表示该SQL脚本处于正常的消耗范围内,将该SQL脚本识别为正常脚本。反之,若存在一个变量值对应的第二消耗特征值大于预设的消耗特征值阈值,则表示该SQL脚本取该变量值时其对应的消耗超过正常的消耗范围,则识别该目标SQL脚本为异常脚本。优选地,终端设备将发送异常告警信息给到该SQL脚本对应的管理用户的用户终端,以便管理用户可及时对该SQL脚本进行修复。
可选地,终端设备还可以根据预设的故障修复算法,对该异常脚本进行故障修复。例如,为了减少该异常脚本对后续操作的影响,终端设备将第二消耗特征值对应变量值识别为异常变量值,并将异常变量值从可变参数中的可取值中删除。
以上可以看出,本发明实施例提供的一种脚本的异常检测方法通过获取SQL脚本的运行状态参数,并通过该运行状态参数确定该SQL脚本在预设的时间段内的消耗情况,得到第一消耗特征值,继而终端设备选取消耗较大的N个SQL脚本,进一步确定上述SQL脚本是否存在异常情况,因而终端设备将根据消耗较大的N个SQL脚本生成脚本消耗异常列表,并从脚本异常消耗列表中选取出目标SQL脚本,获取该目标SQL脚本在可变参数取不同变量值时所对应的第二消耗特征参数,将各个第二消耗特征参数与预设的消耗特征阈值进行比较,确定该SQL脚本是否为异常脚本。与现有的脚本的异常检测方法相比,本发明实施例无需数据库的管理员对SQL脚本的异常情况进行手动排查,终端设备自动生成一个存在异常几率较大的脚本异常消耗列表,缩小了管理员的检测范围,并从中定位出目标SQL脚本,进一步确定该SQL脚本是否存在异常,根据该目标SQL脚本的可变参数取不同变量值时的消耗情况,确定该SQL脚本是否异常,无需用户进行异常识别,大大提高了异常检测的准确率以及响应速率。另一方面,由于异常检测的过程主要通过终端设备完成,对于管理员的技术水平要求较低,从而也降低了数据库的维护成本。
图2示出了本发明第二实施例提供的一种脚本的异常检测方法的具体实现流程图。参见图2所示,相对于图1所述实施例,本实施例提供的一种脚本的异常检测方法中S105包括S201~S203,具体详述如下:
进一步地,所述若存在一个所述可变参数取某一变量值时对应的第二消耗特征值大于消耗特征阈值,则识别该目标SQL脚本为异常脚本,包括:
在S201中,获取所述目标SQL脚本在多个预设的时间节点取所述变量值时对应的历史消耗特征值。
在本实施例中,终端设备将以预设的时间间隔检测SQL脚本对应的消耗特征值,并根据各个检测时刻所对应的消耗特征值,得到历史消耗特征值曲线。其中,每一次检测消耗特征值所对应的时刻,即为上述预设的时间节点,通过获取目标SQL脚本的历史消耗特征曲线,可以较为直观地获取SQL脚本在历史消耗中哪些时间的消耗值较大,而哪些时间的消耗值较小,进一步地,还可以对SQL脚本消耗情况的预测。需要说明的是,终端设备对于各个SQL脚本均进行历史消耗特征值采集的操作,并将各个SQL脚本对应的历史消耗特征曲线存储于数据库内。
在本实施例中,当终端设备识别到某一SQL脚本为目标SQL脚本时,可根据该目标SQL脚本对应的脚本标识,从数据库中获取该脚本标识所对应的历史消耗特征曲线,继而获取在多个预设的时间节点取该变量值时所对应的历史消耗特征值。
在本实施例中,用户可根据实际的需求,设置对应的检测时间区域,继而终端设备根据该检测时间区间从历史消耗特征曲线中截取该检测时间区间所对应的曲线段,将该曲线段所包含的时间节点识别为上述预设的时间节点。
在S202中,基于多个所述历史消耗特征值确定所述变量值的历史消耗范围。
在本实施例中,终端设备在获取了各个预设的时间节点对应的历史消耗特征值后,可以根据多个历史消耗特征值确定该变量值对应的历史消耗范围。具体地,终端设备从多个历史消耗特征值中选取最小的一个历史消耗特征值作为历史消耗范围的下限值,从多个历史消耗特征值中选取最大的一个历史消耗特征值作为历史消耗范围的上限值,继而得到该历史消耗范围。需要强调的是,上述确定历史消耗范围的过程中,将不考虑获取到第二消耗特征值,即预设的时间节点不包含获取到第二消耗特征值所对应的时刻。
可选地,终端设备在确定历史消耗范围的过程中,在选取了最大的一个历史消耗特征值时,需要计算最大的一个历史消耗特征值与第二大的历史消耗特征值之间的差值,若该差值大于预设的消耗差异阈值,则表示该最大的历史消耗特征值也可能是在SQL脚本存在异常时对应的历史消耗特征值,并不属于SQL脚本正常的消耗,则选取第二大的历史消耗特征值,作为历史消耗范围的上限值。对于下限值也可以通过与上述相同的步骤进行合法性判定。
在S203中,若所述变量值对应的第二消耗特征值超出所述历史消耗范围,则识别该目标SQL脚本为异常脚本。
在本实施例中,终端设备将该变量值对应的第二消耗特征值与历史消耗范围进行比较,确定该第二消耗特征值是否在历史消耗范围之外。若第二消耗特征值超出历史消耗范围,则识别该变量值为异常变量值,该SQL脚本为异常脚本;反之,若第二消耗特征值在历史消耗范围之内,则识别该变量值为正常变量值,该SQL脚本为正常脚本。
在本发明实施例中,终端设备获取SQL脚本的历史消耗特征值,确定该SQL脚本取该变量值时对应的历史消耗范围,继而判断第二消耗特征值是否在正常的范围内,从而实现对异常脚本的识别,提高了识别的准确性。
图3了本发明第三实施例提供的一种脚本的异常检测方法的具体实现流程图。参见图3所示,相对于图1所述实施例,本实施例提供的一种脚本的异常检测方法还包括S301以及S302,具体详述如下:
进一步地,在所若存在一个所述可变参数取某一变量值时对应的第二消耗特征值大于消耗特征阈值,则识别该目标SQL脚本为异常脚本之后,还包括:
在S301中,获取所述变量值所属可变参数的参数变更记录。
在本实施例中,终端设备还可以记录有各个SQL脚本关于可变参数的参数变更记录。该参数变更记录记载有对该SQL脚本的可变参数重新赋值的变量值、变更创建人、变更时间等信息,以便用户通过该变更记录获知SQL脚本的变更情况,是否存在未授权的用户更改过该运行控制文件;另一方面,数据库的管理账户可根据该参数变更记录,随时还原SQL脚本至之前的版本。
在本实施例中,由于异常SQL脚本是在本次检测时刻确定其消耗异常,即在本次检测时刻之前该异常SQL脚本仍能被数据库正常调用,因此通过还原该异常SQL脚本中可变参数所取的变量值,即可修复该异常SQL脚本,因此将获取该故障控制文件对应的控制参数变更记录,并执行S302的相关操作。
在S302中,根据所述参数变更记录创建时间的逆序,逐次还原所述参数变更记录包含的变更内容,直至所述目标SQL脚本对应的消耗特征值小于或等于预设的消耗阈值。
在本实施例中,终端设备将根据各个参数变更记录的创建时间的逆序,每一次还原一个参数变更记录中的变更内容,以便将异常SQL脚本逐步还原到正常的范围内,从而对异常情况进行修复。
在本实施例中,终端设备在每还原一个变更内容后,将模拟运行一次还原后的故障控制文件,获取还原后运行该异常SQL脚本时数据库的运行状态参数,并根据该运行状态参数计算其对应的消耗特征值,若该消耗特征值小于或等于预设的消耗阈值,则表示异常情况已修复成功,终止S302的相关操作;反之,若该消耗特征值仍大于预设的消耗阈值,则进行下一个变更内容的还原,重复执行上述操作。
在本发明实施例中,终端设备通过还原故障控制文件中的变更内容,实现对异常的运行控制脚本进行修复的目的,从而实现对自动故障情况进行修复,提高了异常的处理效率以及响应速度。
图4了本发明第三实施例提供的一种脚本的异常检测方法S101的具体实现流程图。参见图4所示,相对于图1~图3所述实施例,本实施例提供的一种脚本的异常检测方法中所述获取各个SQL脚本的运行状态参数包括S401~S403,具体详述如下:
进一步地,所述获取各个SQL脚本的运行状态参数,包括:
在S401中,监测当前时间是否满足预设的异常检测触发时间。
终端设备在获取各个SQL脚本之前,需要对其触发时间进行判定,在本实施例中,终端设备采用时间触发以及消耗触发相结合的检测触发方式。首先,终端设备将获取监测当前时间是否与预设的异常检测触发时间匹配,特别地,该异常检测触发时机为一周期触发时间,也可以为用户预先设置的多个时间点。当终端设备判定当前时间与异常检测触发时机相匹配,则执行S402的相关操作,反之,则保持待机状态,以减少电量的消耗。
在S402中,若当前时间满足预设的异常检测触发时间,则获取待检测终端当前的资源占用率。
在本实施例中,终端设备在获知当前时间与异常检测触发时机相匹配时,则获取该待检测终端的当前的资源占用率。其中,待检测终端具体为:调用各个SQL脚本的终端。若本实施例的终端设备集成于数据库服务器中,且该数据库服务器调用各个SQL脚本,则在该情况下,待检测终端即为本实施例提供的终端设备;若终端设备为一独立的检测终端,则该待检测终端即为调用各个SQL脚本的数据库服务器。
在本实施例中,终端设备将获取待检测终端当前的资源占用率,若待检测终端为单独一个终端,即调用各个SQL脚本的数据库服务器均为同一个服务器,则可直接将该终端的资源占用率作为该待检测终端对应的资源占用率;若待检测终端为多个数据库服务器组成的数据库系统,则该资源占用率为整个数据库系统的资源占用率。特别地,若终端设备集成于数据库服务器内,则获取该终端设备本地的资源占用率。
在本实施例中,终端设备设置有一占用率阈值,当获取到的资源占用率大于该占用率阈值时,则表示可能存在SQL脚本异常的情况,执行S403的操作;反之,若获取到的资源占用率小于或等于占用率阈值,则表示当前SQL脚本运行基本处于正常状态,并未达到需进行异常处理的级别,因此将返回S401,等待下一个检测时机的到达。可选地,在本实施例中,该占用率阈值可根据时间的推移而变化,例如空闲时段,调用SQL脚本的次数以及个数较少,因此其对应的占用率阈值可以较低,而满分时段,调用SQL脚本的次数以及个数均较多,因此其对应的占用率阈值可以较高。
在S403中,若所述资源占用率大于预设的占用率阈值,则获取各个所述SQL脚本的运行状态参数。
在本实施例中,终端设备在检测到资源占用率大于预设的占用率阈值时,则判定当前SQL脚本中可能存在异常脚本,因此将执行异常检测的操作。
在本发明实施例中,通过设置异常检测时机以及占用率阈值,从而在可能存在异常的情况时,自动执行异常检测操作,从而避免不必要的检测流程,提高了终端的资源利用率。
图5示出了本发明第五实施例提供的一种脚本的异常检测方法S103的具体实现流程图。参见图5所示,相对于图1所述实施例,本实施例提供的一种脚本的异常检测方法S102包括以下步骤,详述如下:
进一步地,所述运行状态参数包括:运算资源占用参数、平均运行时间参数、内存占用参数以及运行次数;
所述根据各个所述SQL脚本的运行状态参数,计算各个所述SQL脚本对应的第一消耗特征值,包括:
在S501中,确定各个所述运行状态参数对应的权重值。
在本实施例中,终端设备获取各个SQL脚本的运行状态参数包含多种类型的参数,分别为运算资源占用参数、平均运行时间参数、内存占用参数以及运行次数,不同的运作状态参数对应的权重值均不相同,因此终端设备首先需要确定各个运行状态参数对应的权重值,并根据上述权重值生成与之对应的消耗特征转换模型。
可选地,在本实施例中,终端设备可根据当前的检测模式,调整各个运行状态参数对应的权重值。例如,若当前的检测模式为运行时间优先模式,则平均运行时间参数对应的权重值较大,并适当调整其他运行状态参数的权重值;若当前的检测模式为内存优先模式,则内存占用参数对应的权重值较大,从而使得第一消耗特征值能够更有效表示对应检测模式的消耗情况。
在S502中,将各个所述SQL脚本对应的所述运算资源占用参数、所述平均运行时间参数、所述内存占用参数以及所述运行次数,导入至消耗特征值转换模型,分别计算出各个所述SQL脚本对应的第一消耗特征值,所述消耗特征值转换模型具体为:
Ex=α1Ct(SQL)+α2T(SQL)+α3Buff(SQL)+α4Q(SQL)
其中,Ex为SQL脚本的第一消耗特征值,α1、α2、α3和α4为各个运行状态参数对应的权重值,Ct(SQL)为SQL脚本的运算资源占用参数,T(SQL)为SQL脚本的平均运行时间参数,Buff(SQL)为SQL脚本的内存占用参数,Q(SQL)为SQL脚本的运行次数。
在本实施例中,终端设备将S101中获取得到的多个运行状态参数对应的参数值导入到消耗特征转换模型中对应的位置中,并通过该消耗特征值转换模型,通过运行状态参数计算对应的第一消耗特征值。
在本发明实施例中,通过将获取得到的多个运行状态参数导入到预设的消耗特征转换模型中,实现由运行状态参数到第一消耗特征值的转换,提高了第一消耗特征值的计算效率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
图6示出了本发明一实施例提供的一种脚本的异常检测终端的结构框图,该脚本的异常检测终端包括的各单元用于执行图1对应的实施例中的各步骤。具体请参阅图1与图1所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。
参见图6,所述脚本的异常检测终端包括:
运行状态参数获取单元61,用于获取各个结构化查询语言SQL脚本的运行状态参数;每个所述SQL脚本包含至少一个可变参数;
第一消耗值计算单元62,用于根据各个所述SQL脚本的运行状态参数,计算各个所述SQL脚本的第一消耗特征值;其中,所述第一消耗特征值用于表示所述SQL脚本对设备资源的占用情况;
消耗异常列表生成单元63,用于从大到小对各个所述第一消耗特征值进行排序后,选取前N个所述第一消耗特征值对应的SQL脚本,生成脚本消耗异常列表;其中,所述N为小于所述SQL脚本的总数量的正整数;
第二消耗特征值计算单元64,用于从所述脚本消耗异常列表中选取出目标SQL脚本,分别获取所述目标SQL脚本中所述可变参数取各个变量值时对应的第二消耗特征值;
异常脚本判定单元65,用于若存在一个所述可变参数取某一变量值时对应的第二消耗特征值大于消耗特征阈值,则识别该目标SQL脚本为异常脚本。
可选地,所述异常脚本判定单元65,包括:
历史消耗获取单元,用于获取所述目标SQL脚本在多个预设的时间节点取所述变量值时对应的历史消耗特征值;
历史消耗范围确定单元,用于基于多个所述历史消耗特征值确定所述变量值的历史消耗范围;
历史消耗范围比较单元,用于若所述变量值对应的第二消耗特征值超出所述历史消耗范围,则识别该目标SQL脚本为异常脚本
可选地,所述脚本的异常检测终端,还包括:
参数变更记录获取单元,用于获取所述变量值所属可变参数的参数变更记录;
变更内容还原单元,用于根据所述参数变更记录创建时间的逆序,逐次还原所述参数变更记录包含的变更内容,直至所述目标SQL脚本对应的消耗特征值小于或等于预设的消耗阈值。
可选地,所述运行状态参数获取单元61包括:
触发时间监测单元,用于监测当前时间是否满足预设的异常检测触发时间;
资源占用率获取单元,用于若当前时间满足预设的异常检测触发时间,则获取待检测终端当前的资源占用率;
检测启动判定单元,用于若所述资源占用率大于预设的占用率阈值,则获取各个所述SQL脚本的运行状态参数。
可选地,所述运行状态参数包括:运算资源占用参数、平均运行时间参数、内存占用参数以及运行次数;所述第一消耗值计算单元62包括:
运行参数权重确定单元,用于确定各个所述运行状态参数对应的权重值;
消耗特征值转换模型导入单元,用于将各个所述SQL脚本对应的所述运算资源占用参数、所述平均运行时间参数、所述内存占用参数以及所述运行次数,导入至消耗特征值转换模型,分别计算出各个所述SQL脚本对应的第一消耗特征值,所述消耗特征值转换模型具体为:
Ex=α1Ct(SQL)+α2T(SQL)+α3Buff(SQL)+α4Q(SQL)
其中,Ex为SQL脚本的第一消耗特征值,α1、α2、α3和α4为各个运行状态参数对应的权重值,Ct(SQL)为SQL脚本的运算资源占用参数,T(SQL)为SQL脚本的平均运行时间参数,Buff(SQL)为SQL脚本的内存占用参数,Q(SQL)为SQL脚本的运行次数。
因此,本发明实施例提供的脚本的异常检测终端同样可以无需数据库的管理员对SQL脚本的异常情况进行手动排查,终端设备自动生成一个存在异常几率较大的脚本异常消耗列表,缩小了管理员的检测范围,并从中定位出目标SQL脚本,进一步确定该SQL脚本是否存在异常,根据该目标SQL脚本的可变参数取不同变量值时的消耗情况,确定该SQL脚本是否异常,无需用户进行异常识别,大大提高了异常检测的准确率以及响应速率。另一方面,由于异常检测的过程主要通过终端设备完成,对于管理员的技术水平要求较低,从而也降低了数据库的维护成本。
图7是本发明另一实施例提供的一种终端设备的示意图。如图7所示,该实施例的终端设备7包括:处理器70、存储器71以及存储在所述存储器71中并可在所述处理器70上运行的计算机程序72,例如脚本的异常检测程序。所述处理器70执行所述计算机程序72时实现上述各个脚本的异常检测方法实施例中的步骤,例如图1所示的S101至S105。或者,所述处理器70执行所述计算机程序72时实现上述各装置实施例中各单元的功能,例如图6所示模块61至65功能。
示例性的,所述计算机程序72可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器71中,并由所述处理器70执行,以完成本发明。所述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序72在所述终端设备7中的执行过程。例如,所述计算机程序72可以被分割成运行状态参数获取单元、第一消耗值计算单元、消耗异常列表生成单元、第二消耗特征值计算单元以及异常脚本判定单元,各单元具体功能如下:
运行状态参数获取单元,用于获取各个结构化查询语言SQL脚本的运行状态参数;每个所述SQL脚本包含至少一个可变参数;
第一消耗值计算单元,用于根据各个所述SQL脚本的运行状态参数,计算各个所述SQL脚本的第一消耗特征值;其中,所述第一消耗特征值用于表示所述SQL脚本对设备资源的占用情况;
消耗异常列表生成单元,用于从大到小对各个所述第一消耗特征值进行排序后,选取前N个所述第一消耗特征值对应的SQL脚本,生成脚本消耗异常列表;其中,所述N为小于所述SQL脚本的总数量的正整数;
第二消耗特征值计算单元,用于从所述脚本消耗异常列表中选取出目标SQL脚本,分别获取所述目标SQL脚本中所述可变参数取各个变量值时对应的第二消耗特征值;
异常脚本判定单元,用于若存在一个所述可变参数取某一变量值时对应的第二消耗特征值大于消耗特征阈值,则识别该目标SQL脚本为异常脚本。
所述终端设备7可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器70、存储器71。本领域技术人员可以理解,图7仅仅是终端设备7的示例,并不构成对终端设备7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器70可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器71可以是所述终端设备7的内部存储单元,例如终端设备7的硬盘或内存。所述存储器71也可以是所述终端设备7的外部存储设备,例如所述终端设备7上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器71还可以既包括所述终端设备7的内部存储单元也包括外部存储设备。所述存储器71用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器71还可以用于暂时地存储已经输出或者将要输出的数据。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (10)

1.一种脚本的异常检测方法,其特征在于,包括:
获取各个结构化查询语言SQL脚本的运行状态参数;每个所述SQL脚本包含至少一个可变参数;
根据各个所述SQL脚本的运行状态参数,计算各个所述SQL脚本的第一消耗特征值;其中,所述第一消耗特征值用于表示所述SQL脚本对设备资源的占用情况;
从大到小对各个所述第一消耗特征值进行排序后,选取前N个所述第一消耗特征值对应的SQL脚本,生成脚本消耗异常列表;其中,所述N为小于所述SQL脚本的总数量的正整数;
从所述脚本消耗异常列表中选取出目标SQL脚本,分别获取所述目标SQL脚本中所述可变参数取各个变量值时对应的第二消耗特征值;
若存在一个所述可变参数取某一变量值时对应的第二消耗特征值大于消耗特征阈值,则识别该目标SQL脚本为异常脚本。
2.根据权利要求1所述的异常检测方法,其特征在于,所述若存在一个所述可变参数取某一变量值时对应的第二消耗特征值大于消耗特征阈值,则识别该目标SQL脚本为异常脚本,包括:
获取所述目标SQL脚本在多个预设的时间节点取所述变量值时对应的历史消耗特征值;
基于多个所述历史消耗特征值确定所述变量值的历史消耗范围;
若所述变量值对应的第二消耗特征值超出所述历史消耗范围,则识别该目标SQL脚本为异常脚本。
3.根据权利要求1所述的异常检测方法,其特征在于,在所述若存在一个所述可变参数取某一变量值时对应的第二消耗特征值大于消耗特征阈值,则识别该目标SQL脚本为异常脚本之后,还包括:
获取所述变量值所属可变参数的参数变更记录;
根据所述参数变更记录创建时间的逆序,逐次还原所述参数变更记录包含的变更内容,直至所述目标SQL脚本对应的消耗特征值小于或等于预设的消耗阈值。
4.根据权利要求1-3任一项所述的异常检测方法,其特征在于,所述获取各个结构化查询语言SQL脚本的运行状态参数,包括:
监测当前时间是否满足预设的异常检测触发时间;
若当前时间满足预设的异常检测触发时间,则获取待检测终端当前的资源占用率;
若所述资源占用率大于预设的占用率阈值,则获取各个所述SQL脚本的运行状态参数。
5.根据权利要求1所述的异常检测方法,其特征在于,所述运行状态参数包括:运算资源占用参数、平均运行时间参数、内存占用参数以及运行次数;
所述根据各个所述SQL脚本的运行状态参数,计算各个所述SQL脚本对应的第一消耗特征值,包括:
确定各个所述运行状态参数对应的权重值;
将各个所述SQL脚本对应的所述运算资源占用参数、所述平均运行时间参数、所述内存占用参数以及所述运行次数,导入至消耗特征值转换模型,分别计算出各个所述SQL脚本对应的第一消耗特征值,所述消耗特征值转换模型具体为:
Ex=α1Ct(SQL)+α2T(SQL)+α3Buff(SQL)+α4Q(SQL)
其中,Ex为SQL脚本的第一消耗特征值,α1、α2、α3和α4为各个运行状态参数对应的权重值,Ct(SQL)为SQL脚本的运算资源占用参数,T(SQL)为SQL脚本的平均运行时间参数,Buff(SQL)为SQL脚本的内存占用参数,Q(SQL)为SQL脚本的运行次数。
6.一种终端设备,其特征在于,所述终端设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
获取各个结构化查询语言SQL脚本的运行状态参数;每个所述SQL脚本包含至少一个可变参数;
根据各个所述SQL脚本的运行状态参数,计算各个所述SQL脚本的第一消耗特征值;其中,所述第一消耗特征值用于表示所述SQL脚本对设备资源的占用情况;
从大到小对各个所述第一消耗特征值进行排序后,选取前N个所述第一消耗特征值对应的SQL脚本,生成脚本消耗异常列表;其中,所述N为小于所述SQL脚本的总数量的正整数;
从所述脚本消耗异常列表中选取出目标SQL脚本,分别获取所述目标SQL脚本中所述可变参数取各个变量值时对应的第二消耗特征值;
若存在一个所述可变参数取某一变量值时对应的第二消耗特征值大于消耗特征阈值,则识别该目标SQL脚本为异常脚本。
7.根据权利要求6所述的终端设备,其特征在于,所述若存在一个所述可变参数取某一变量值时对应的第二消耗特征值大于消耗特征阈值,则识别该目标SQL脚本为异常脚本,包括:
获取所述目标SQL脚本在多个预设的时间节点取所述变量值时对应的历史消耗特征值;
基于多个所述历史消耗特征值确定所述变量值的历史消耗范围;
若所述变量值对应的第二消耗特征值超出所述历史消耗范围,则识别该目标SQL脚本为异常脚本。
8.根据权利要求6所述的终端设备,其特征在于,在所述若存在一个所述可变参数取某一变量值时对应的第二消耗特征值大于消耗特征阈值,则识别该目标SQL脚本为异常脚本之后,所述处理器执行所述计算机程序时实现如下步骤:
获取所述变量值所属可变参数的参数变更记录;
根据所述参数变更记录创建时间的逆序,逐次还原所述参数变更记录包含的变更内容,直至所述目标SQL脚本对应的消耗特征值小于或等于预设的消耗阈值。
9.根据权利要求6-8任一项所述的终端设备,其特征在于,所述获取各个结构化查询语言SQL脚本的运行状态参数,包括:
监测当前时间是否满足预设的异常检测触发时间;
若当前时间满足预设的异常检测触发时间,则获取待检测终端当前的资源占用率;
若所述资源占用率大于预设的占用率阈值,则获取各个所述SQL脚本的运行状态参数。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述方法的步骤。
CN201711461966.5A 2017-12-28 2017-12-28 一种脚本的异常检测方法及其终端 Active CN108255710B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711461966.5A CN108255710B (zh) 2017-12-28 2017-12-28 一种脚本的异常检测方法及其终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711461966.5A CN108255710B (zh) 2017-12-28 2017-12-28 一种脚本的异常检测方法及其终端

Publications (2)

Publication Number Publication Date
CN108255710A CN108255710A (zh) 2018-07-06
CN108255710B true CN108255710B (zh) 2020-01-10

Family

ID=62724404

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711461966.5A Active CN108255710B (zh) 2017-12-28 2017-12-28 一种脚本的异常检测方法及其终端

Country Status (1)

Country Link
CN (1) CN108255710B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111930545B (zh) * 2019-05-13 2023-11-03 中国移动通信集团湖北有限公司 Sql脚本处理方法、装置和服务器
CN110297814A (zh) * 2019-05-22 2019-10-01 中国平安人寿保险股份有限公司 数据库操作的性能监控方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103617273A (zh) * 2013-12-05 2014-03-05 用友软件股份有限公司 Sql脚本对象化的方法及系统
CN106547662A (zh) * 2016-10-21 2017-03-29 长安通信科技有限责任公司 一种用于分布式数据库的性能故障定位方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8644157B2 (en) * 2011-03-28 2014-02-04 Citrix Systems, Inc. Systems and methods for handling NIC congestion via NIC aware application

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103617273A (zh) * 2013-12-05 2014-03-05 用友软件股份有限公司 Sql脚本对象化的方法及系统
CN106547662A (zh) * 2016-10-21 2017-03-29 长安通信科技有限责任公司 一种用于分布式数据库的性能故障定位方法

Also Published As

Publication number Publication date
CN108255710A (zh) 2018-07-06

Similar Documents

Publication Publication Date Title
CN111049705B (zh) 一种监控分布式存储系统的方法及装置
US10558545B2 (en) Multiple modeling paradigm for predictive analytics
US9413773B2 (en) Method and apparatus for classifying and combining computer attack information
CN109343853B (zh) 一种应用程序的异常识别方法及设备
CN109543891B (zh) 容量预测模型的建立方法、设备及计算机可读存储介质
WO2020093637A1 (zh) 设备状态预测方法、系统、计算机装置及存储介质
CN108198408B (zh) 一种基于用电信息采集系统的自适应反窃电监控方法及系统
CN113051308A (zh) 告警信息处理方法、设备、存储介质及装置
CN108255710B (zh) 一种脚本的异常检测方法及其终端
KR20170084445A (ko) 시계열 데이터를 이용한 이상 감지 방법 및 그 장치
CN110674149B (zh) 业务数据处理方法、装置、计算机设备和存储介质
CN108255703B (zh) 一种sql脚本的故障修复方法及其终端
CN110618890B (zh) 故障处理方法、装置、电子设备及计算机可读存储介质
CN112948223A (zh) 一种监测运行情况的方法和装置
CN109800085B (zh) 资源配置的检测方法、装置、存储介质和电子设备
CN107908555B (zh) 一种sql脚本的异常检测方法及其终端
CN107797924B (zh) 一种sql脚本的异常检测方法及其终端
CN116471174B (zh) 一种日志数据监测系统、方法、装置和存储介质
CN108255704B (zh) 一种脚本调用事件的异常响应方法及其终端
CN107957942B (zh) 一种sql脚本的故障修复方法及其终端
WO2020000724A1 (zh) 云平台主机间通信负载的处理方法、电子装置及介质
CN110633165B (zh) 故障处理方法、装置、系统服务器及计算机可读存储介质
WO2022072017A1 (en) Methods and systems for multi-resource outage detection for a system of networked computing devices and root cause identification
KR102464688B1 (ko) 모니터링 결과의 이벤트 등급 결정 방법 및 장치
EP4155969A1 (en) Query processing method and apparatus, electronic device and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant