慢SQL语句预测方法及系统技术方案

技术编号:27976371 阅读:27 留言:0更新日期:2021-04-06 14:10
本发明专利技术提供一种慢SQL语句预测方法及系统,首先获取待预测SQL语句的特征信息;若历史慢SQL语句库中不存在与待预测SQL语句的特征信息的相似度满足预设条件的历史慢SQL语句,则确定待预测SQL语句的执行时间;最后根据确定的执行时间,对待预测SQL语句进行预测。本发明专利技术实施例中通过计算待预测SQL语句的特征信息与历史慢SQL语句的特征信息之间的相似度,结合待预测SQL语句的执行时间,对待预测SQL语句进行预测,不需要通过人为进行预测,既可以使预测结果更加准确,也可以节约人力,提高预测效率。而且,可以在SQL语句上线之前将其作为待预测SQL语句进行预测,可以避免慢SQL语句上线后导致系统故障。

【技术实现步骤摘要】
慢SQL语句预测方法及系统
本专利技术涉及计算机软件
,尤其涉及一种慢SQL语句预测方法及系统。
技术介绍
在软件编程中,由于开发者的编程能力和业务的频繁迭代可能会产生慢SQL现象。慢SQL现象是指应用在运行一段时间业务后,由于部分SQL语句频繁地对数据库进行I/O操作,从而造成了该部分SQL语句执行时长时间占用CPU。对于应用来说,少量的慢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语句的执行时间。根据本专利技术提供的一种慢SQL语句预测方法,所述获取待预测SQL语句的特征信息,之前还包括:获取Mysql数据库的执行日志,并将所述执行日志发送至kafka;监听所述kafka中的SQL语句,并将所述SQL语句作为所述待预测SQL语句。根据本专利技术提供的一种慢SQL语句预测方法,所述若判断获知历史慢SQL语句库中不存在与所述待预测SQL语句的特征信息的相似度满足预设条件的历史慢SQL语句,之前还包括:计算所述待预测SQL语句的特征信息与所述历史慢SQL语句库中任一历史慢SQL语句的特征信息之间的编辑距离或者杰卡德相似系数;将所述编辑距离或者杰卡德相似系数作为所述待预测SQL语句的特征信息与所述任一历史慢SQL语句的特征信息之间的相似度;判断所述相似度是否满足所述预设条件。根据本专利技术提供的一种慢SQL语句预测方法,所述若判断获知历史慢SQL语句库中不存在与所述待预测SQL语句的特征信息的相似度满足预设条件的历史慢SQL语句,之前还包括:计算所述待预测SQL语句的特征信息以及所述历史慢SQL语句库中任一历史慢SQL语句的特征信息的simhash值;基于计算得到的simhash值,确定所述待预测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语句的执行时间;最后根据确定的执行时间,预测待预测SQL语句是否为慢SQL语句。本专利技术实施例中通过计算待预测SQL语句的特征信息与历史慢SQL语句的特征信息之间的相似度,结合待预测SQL语句的执行时间,对待预测SQL语句是否为慢SQL语句进行预测,不需要引入人为操作,既可以使预测结果更加准确,也可以节约人力,提高预测效率。而且,可以在SQL语句上线之前将其作为待预测SQL语句进行预测,可以避免慢SQL语句上线后导致系统故障。附图说明为了更清楚地说明本专利技术或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术提供的慢SQL语句预测方法的流程示意图;图2是本专利技术提供的慢SQL语句预测方法的流程示意图;图3是本专利技术提供的慢SQL语句预测系统的结构示意图;图4是本专利技术提供的电子设备的结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合本专利技术中的附图,对本专利技术中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。由于现有技术中在对系统中慢SQL语句进行预测时,通常是在慢SQL现象已经产生的情况下,通过工作人员对执行时间大于阈值的慢SQL语句进行判定,这需要工作人员对系统有较全面的了解,对于工作经验较少的工作人员则无法进行准确的判断。因此需要投入较大的人力,而且对工作人员的能力要求较高。另外,这种方式不仅无法避免线上系统故障,而且可能存在人为引入的误判情况。为此,本专利技术实施例中提供了一种慢SQL语句预测方法。图本文档来自技高网...

【技术保护点】
1.一种慢SQL语句预测方法,其特征在于,包括:/n获取待预测SQL语句的特征信息;/n若判断获知历史慢SQL语句库中不存在与所述待预测SQL语句的特征信息的相似度满足预设条件的历史慢SQL语句,则确定所述待预测SQL语句的执行时间;/n基于所述执行时间,预测所述待预测SQL语句是否为慢SQL语句。/n

【技术特征摘要】
1.一种慢SQL语句预测方法,其特征在于,包括:
获取待预测SQL语句的特征信息;
若判断获知历史慢SQL语句库中不存在与所述待预测SQL语句的特征信息的相似度满足预设条件的历史慢SQL语句,则确定所述待预测SQL语句的执行时间;
基于所述执行时间,预测所述待预测SQL语句是否为慢SQL语句。


2.根据权利要求1所述的慢SQL语句预测方法,其特征在于,所述若判断获知历史慢SQL语句库中不存在与所述待预测SQL语句的特征信息的相似度满足预设条件的历史慢SQL语句之后,且确定所述待预测SQL语句的执行时间之前,还包括:
对所述待预测SQL语句进行审核,确定所述待预测SQL语句的审核得分,并判断所述审核得分是否低于预设得分阈值;
若所述审核得分低于所述预测得分阈值,则确定所述待预测SQL语句的执行时间。


3.根据权利要求1所述的慢SQL语句预测方法,其特征在于,所述确定所述待预测SQL语句的执行时间,具体包括:
基于非业务数据库,执行所述待预测SQL语句,并确定所述待预测SQL语句的执行时间。


4.根据权利要求1所述的慢SQL语句预测方法,其特征在于,所述获取待预测SQL语句的特征信息,之前还包括:
获取Mysql数据库的执行日志,并将所述执行日志发送至kafka;
监听所述kafka中的SQL语句,并将所述SQL语句作为所述待预测SQL语句。


5.根据权利要求1-4中任一项所述的慢SQL语句预测方法,其特征在于,所述若判断获知历史慢SQL语句库中不存在与所述待预测SQL语句的特征信息的相似度满足预设条件的历史慢SQL语句,之前还包括:
计算所述待预测SQL语句的特征信息与所述历史慢SQL语句库中任一历史慢SQL语句的特征信息之间的编辑距离或者杰卡德相似系数;
将所述编辑距离或者杰卡德相似系数作为所述待预测SQL语句的特征信息与所述任一历史慢SQL语句的特征信息之间的...

【专利技术属性】
技术研发人员:王凯
申请(专利权)人:贝壳技术有限公司
类型:发明
国别省市:天津;12

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

1