大事务异常检测方法、装置、存储介质和设备制造方法及图纸

技术编号:35938101 阅读:8 留言:0更新日期:2022-12-14 10:25
本申请提供大事务异常检测方法、装置、存储介质和设备,包括:获取大事务中任意一个SQL语句;若所述SQL语句为执行写操作的SQL语句,从所述执行写操作的SQL语句中提取若干个第一设定语句,其中所述第一设定语句包括插入语句、更新语句和删除语句中的任意一种;判断任意一个第一设定语句的操作次数是否大于第一设定阈值;若任意一个第一设定语句的操作次数大于第一设定阈值,则判断所述大事务异常。通过检测SQL语句中第一设定语句的操作次数是否大于设定阈值,判断大事务是否存在锁定数据过多或操作时间过长的情况,从而判断大事务异常。常。常。

【技术实现步骤摘要】
大事务异常检测方法、装置、存储介质和设备


[0001]本专利技术涉及数据库
,具体涉及大事务异常检测方法、装置、存储介质和设备。

技术介绍

[0002]在数据库中,将一条SQL语句称为一次基本的操作。将若干条SQL语句打包在一起,共同执行一个完整的任务,该任务则称为事务。事务将包含的所有SQL语句作为一个整体向数据库提交,只有所有的SQL语句都执行完成,整个事务才算成功执行;一旦某个SQL语句执行失败,整个事务就执行失败,事务失败后需要回滚所有的SQL语句。
[0003]大事务为运行时间较长或操作数据较多的事务。大事务存在的风险包括:锁定数据过多,造成大量的阻塞和锁超时,回滚所需的时间较长;或执行时间较长,容易造成主从延迟。因此,若大事务存在异常,系统需要较长的时间反馈大事务异常的情况,不利于程序的高效执行;亟需在大事务执行前对大事务是否存在异常进行自动检测。

技术实现思路

[0004]基于此,本专利技术提供大事务异常检测方法、装置、存储介质和设备,能够在大事务执行前自动检测大事务是否存在异常,及时对大事务的异常情况做出反馈,提高程序的执行效率。
[0005]第一方面,本专利技术提供一种大事务异常检测方法,包括:
[0006]获取大事务中任意一个SQL语句;
[0007]若所述SQL语句为执行写操作的SQL语句,从所述执行写操作的SQL语句中提取若干个第一设定语句,其中所述第一设定语句包括插入语句、更新语句和删除语句中的任意一种;
[0008]判断任意一个第一设定语句的操作次数是否大于第一设定阈值;
[0009]若任意一个第一设定语句的操作次数大于第一设定阈值,则判断所述大事务异常。
[0010]第二方面,本专利技术提供一种大事务异常检测装置,包括:
[0011]SQL获取模块,用于获取大事务中任意一个SQL语句;
[0012]第一提取模块,用于若所述SQL语句为执行写操作的SQL语句,从所述执行写操作的SQL语句中提取若干个第一设定语句,其中所述第一设定语句包括插入语句、更新语句和删除语句中的任意一种;
[0013]第一判断模块,用于判断任意一个第一设定语句的操作次数是否大于第一设定阈值;
[0014]第一异常模块,用于若任意一个第一设定语句的操作次数大于第一设定阈值,则判断所述大事务异常。
[0015]第三方面,本专利技术提供一种计算机可读存储介质,其上存储有计算机程序,所述计
算机程序被处理器执行时实现第一方面中任一项大事务异常检测方法的步骤。
[0016]第四方面,本专利技术提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,执行第一方面中任一项大事务异常检测方法。
[0017]采用上述技术方案的有益效果为:本申请判断事务中任意一个执行写操作的SQL语句中设定语句的操作次数、事务中所有执行写操作的SQL语句中的设定语句的调用次数是否超出设定阈值、以及事务中是否另外调用外部接口,检测执行的大事务是否异常;通过上述设置可减少人为介入检测大事务是否异常的操作,并且缩短系统反馈大事务异常的情况,提高程序的高效执行。
附图说明
[0018]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
[0019]图1为本申请一个实施例中大事务异常检测方法示意图;
[0020]图2为本申请一个实施例中大事务异常检测装置示意图。
具体实施方式
[0021]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。为了更详细说明本专利技术,下面结合附图对本专利技术提供的,进行具体地描述。
[0022]大事务是指运行时间比较长、操作数据比较多的事务,大事务的产生是由于操作的数据比较多、存在大量的锁竞争、以及在事务中存在其他耗时操作。大事务在并发情况下,由于操作的数据量庞大,容易出现数据库连接池被撑爆的情况;由于锁定数据过多,容易造成大量的阻塞和锁超时,并且执行时间较长,容易造成主从延迟的现象。
[0023]本申请实施例提供了大事务异常检测方法的具体应用场景。该应用场景包括实施例提供的终端设备,终端设备包括但不限于智能手机和计算机设备,其中计算机设备可以是台式计算机、便携式计算机、膝上型计算机、平板电脑等设备中的至少一种。用户对终端设备进行操作,终端设备执行本专利技术的大事务异常检测方法,具体过程请参见大事务异常检测方法实施例。
[0024]基于此,本专利技术实施例提供了一种大事务异常检测方法,以该方法应用于终端设备为例进行说明,结合附图1示出的大事务异常检测方法示意图。
[0025]步骤S101:获取大事务中任意一个SQL语句。
[0026]一个大事务中包含有若干个SQL语句,一个SQL语句为数据库中一次基本的操作。大事务需要将包含的所有SQL语句作为一个整体向数据库提交,只有所有SQL语句都执行完成,整个事务才算成功执行;一旦其中一个SQL语句执行失败,整个大事务就执行失败,事务失败后需要回滚所有的SQL语句。
[0027]其中,大事务中SQL语句的获取方式可通过监听MappedStatement类的
getBoundSql来实现。
[0028]步骤S102:若所述SQL语句为执行写操作的SQL语句,从所述执行写操作的SQL语句中提取若干个第一设定语句,其中所述第一设定语句包括插入语句、更新语句和删除语句中的任意一种。
[0029]由于本专利技术实施例的目的是检测大事务中锁定数据过多、操作时间过长的异常SQL语句,在随机选取任意一个SQL语句后,首先需要判断选取的SQL语句是否有锁定数据或数据操作的行为,若不存在数据锁定或数据操作的行为,则不需要对该SQL语句做进一步的异常判断。其中,将存在数据锁定或数据操作的SQL语句设置为执行写操作的SQL语句,针对执行写操作的SQL语句提取第一设定语句,一个SQL语句中可以包含一个或多个第一设定语句。
[0030]步骤S103:判断任意一个第一设定语句的操作次数是否大于第一设定阈值。
[0031]其中,第一设定阈值为预设的操作次数上限,记为N,N为正整数。在设定语句的操作次数超出该阈值时,则认为该执行写操作的SQL语句存在锁定数据过多或操作时间过长的情况。在实际操作中,可按照SQL语句的执行顺序选取任意一个第一设定语句进行判断,也可在SQL语句中随机抽取任意一个第一设定语句进行判断。
[0032]针对提取的第一设定语句为不同类型的语句时,具体确定操作次数的方法不同:
[0033]当提取的第一设定语句为插入语句时,判断插入语句中赋值操作的次数是否大于第一设定阈值。具体地,插入语本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种大事务异常检测方法,其特征在于,包括:获取大事务中任意一个SQL语句;若所述SQL语句为执行写操作的SQL语句,从所述执行写操作的SQL语句中提取若干个第一设定语句,其中所述第一设定语句包括插入语句、更新语句和删除语句中的任意一种;判断任意一个第一设定语句的操作次数是否大于第一设定阈值;若任意一个第一设定语句的操作次数大于第一设定阈值,则判断所述大事务异常。2.如权利要求1所述的大事务异常检测方法,其特征在于,还包括:在每一个所述第一设定语句的操作次数都小于第一设定阈值时,判断所有第一设定语句的操作次数总和是否大于第一设定阈值;若所有第一设定语句的操作次数总和大于第一设定阈值,则判断所述大事务异常。3.如权利要求2所述的大事务异常检测方法,其特征在于,还包括:若所有第一设定语句的操作次数总和小于第一设定阈值,获取所述大事务中所有执行写操作的SQL语句,并从所有执行写操作的SQL语句中提取各个第一设定语句;判断所有执行写操作的SQL语句中各个第一设定语句的操作次数之和是否大于第二设定阈值;若所有执行写操作的SQL语句中各个第一设定语句的操作次数之和大于第二设定阈值,则判断所述大事务异常。4.如权利要求1所述的大事务异常检测方法,其特征在于,还包括:若所述SQL语句为执行写操作的SQL语句,判断所述大事务是否调用外部接口;若所述大事务调用外部接口,则判断所述大事务异常。5.如权利要求1

4任一项所述的大事务异常检测方法,其特征在于,所述获取大事务中任意一个SQL语句,包括:通过监听MappedStatement类的getBoundSql来获取大事务中任意一个SQL语句。6...

【专利技术属性】
技术研发人员:田养丽张友璇
申请(专利权)人:广州品唯软件有限公司
类型:发明
国别省市:

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

1