一种脚本的异常检测方法及其终端技术

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

【技术实现步骤摘要】
一种脚本的异常检测方法及其终端
本专利技术属于数据库
,尤其涉及一种脚本的异常检测方法及其终端。
技术介绍
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脚本包含至少一个可变参数。在本实施例中,异常检测的触发条件包括手动触发以及自本文档来自技高网...

【技术保护点】
1.一种脚本的异常检测方法,其特征在于,包括:获取各个结构化查询语言SQL脚本的运行状态参数;每个所述SQL脚本包含至少一个可变参数;根据各个所述SQL脚本的运行状态参数,计算各个所述SQL脚本的第一消耗特征值;其中,所述第一消耗特征值用于表示所述SQL脚本对设备资源的占用情况;从大到小对各个所述第一消耗特征值进行排序后,选取前N个所述第一消耗特征值对应的SQL脚本,生成脚本消耗异常列表;其中,所述N为小于所述SQL脚本的总数量的正整数;从所述脚本消耗异常列表中选取出目标SQL脚本,分别获取所述目标SQL脚本中所述可变参数取各个变量值时对应的第二消耗特征值;若存在一个所述可变参数取某一变量值时对应的第二消耗特征值大于消耗特征阈值,则识别该目标SQL脚本为异常脚本。

【技术特征摘要】
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)...

【专利技术属性】
技术研发人员:吴丽娜肖涵月何恩赐
申请(专利权)人:中国平安人寿保险股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1