[发明专利]一种SQL脚本的异常检测方法及其终端有效
申请号: | 201711085996.0 | 申请日: | 2017-11-07 |
公开(公告)号: | CN107908555B | 公开(公告)日: | 2020-01-14 |
发明(设计)人: | 吴丽娜;肖涵月;何恩赐 | 申请(专利权)人: | 中国平安人寿保险股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 44237 深圳中一专利商标事务所 | 代理人: | 官建红 |
地址: | 518000 广东省深圳市福田*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 sql 脚本 异常 检测 方法 及其 终端 | ||
1.一种SQL脚本的异常检测方法,其特征在于,包括:
获取各个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脚本对应的第一消耗特征值,包括:
确定各个所述运行状态参数对应的权重值;
将各个所述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脚本的运行次数。
5.根据权利要求1所述的异常检测方法,其特征在于,所述选取前N个第一消耗特征值对应的SQL脚本,生成脚本消耗异常列表,包括:
获取当前时刻的时间点;
提取所述N个SQL脚本在不同日期的所述时间点对应的第二消耗特征值;
根据所述N个SQL脚本的第一消耗特征值以及所述第二消耗特征值,分别计算所述N个SQL脚本的消耗浮动等级;
根据所述消耗浮动等级以及所述第一消耗特征值生成脚本消耗异常列表。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国平安人寿保险股份有限公司,未经中国平安人寿保险股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711085996.0/1.html,转载请声明来源钻瓜专利网。