一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

慢查询告警方法、电子设备及存储介质与流程

2022-03-16 03:17:37 来源:中国专利 TAG:
1.本技术涉及计算机
技术领域
:,尤其涉及一种慢查询告警方法、电子设备及存储介质。
背景技术
::2.随着计算机技术的发展,越来越多的技术,例如,区块链(blockchain)、大数据、分布式等技术被应用在金融领域,传统金融业正在逐步向金融科技转变,然而,由于金融行业的安全性、实时性要求,金融科技也对技术提出了更高的要求。在金融科技领域下,在关系型数据库管理系统mysql运行的过程中,监控执行的结构化查询语言(sql,structuredquerylanguage)语句,当任一sql语句的执行时间大于设定阈值时,该sql语句为慢查询,输出该sql语句对应的告警日志或者邮件。但这是在检测到慢查询的情况下,才输出告警日志或邮件,这样一来,当告警的慢查询较多时容易影响数据库的服务性能或影响业务的处理效率。技术实现要素:3.有鉴于此,本技术实施例提供一种慢查询告警方法、电子设备及存储介质,以解决相关技术中当告警的慢查询较多时,容易影响数据库的服务性能或影响业务的处理效率的技术问题。4.为达到上述目的,本技术的技术方案是这样实现的:5.本技术实施例提供了一种慢查询告警方法,包括:6.基于第一设定统计周期内单位时长执行第一sql语句消耗的第一平均时长,确定出每相邻两天的第一平均时长对应的第一增幅;7.基于确定出的第一增幅,确定出关于第一增幅的第一均值;8.基于所述第一均值和第一日期对应的第一平均时长,以及基于第一阈值,预测出第一sql语句为慢查询时对应的第二日期;其中,所述第一阈值表征慢查询的临界耗时;所述第一日期表征第一设定统计周期的最后一天;所述第二日期在所述第一日期之后;9.在所述第二日期之前,输出关于对应的第一sql语句的慢查询预警提示。10.上述方案中,所述方法还包括:11.确定出第二设定统计周期内单位时长执行第一sql语句消耗的第二平均时长;12.基于确定出的第二平均时长,确定出所述第二统计周期内关于第二平均时长的第二均值;13.将第一数值和第二数值中的最大值,确定为所述第一阈值;其中,14.所述第一数值表征所述第二均值的设定倍数;所述第二数值表征第三均值与所述第二均值之和;所述第三均值表征第三日期对应的第二平均时长与所述第二均值之间的均值;所述第三日期表征第二设定统计周期的最后一天。15.上述方案中,在确定关于第一增幅的第一均值或关于第二平均时长的第二均值时,所述方法包括:16.计算设定比例与确定出的所有第一参数的总数之间的乘积,得到第一数量;所述第一参数包括第一增幅或第二平均时长;所述设定比例小于0.5;17.按照从大到小的顺序,从确定出的第一参数中删除第一数量的第一参数;以及按照从小到大的顺序,从确定出的第一参数中删除第一数量的第一参数,得到剩余的第一参数;18.计算出剩余的所有第一参数的均值,得到关于第一增幅的第一均值或关于第二平均时长的第二均值。19.上述方案中,在确定单位时长执行第一sql语句消耗的第一平均时长时,所述方法还包括:20.从第一设定统计周期内单位时长执行的sql语句中,确定出执行时长大于或等于第二阈值的第一sql语句;所述第二阈值小于所述第一阈值;21.计算出单位时长执行的所有第一sql语句对应的执行时长的均值,得到单位时长执行第一sql语句消耗的第一平均时长。22.上述方案中,所述预测出第一sql语句为慢查询时对应的第二日期,包括:23.基于所述第一均值和第一日期对应的第一平均时长,以及基于第一阈值,确定出第一sql语句为慢查询时距离所述第一日期的第一天数;24.基于所述第一日期和所述第一天数,预测出第一sql语句为慢查询语句时对应的第二日期。25.上述方案中,在所述预测出第一sql语句为慢查询时对应的第二日期之后,所述方法还包括:26.输出预警的第一sql语句对应的优化建议。27.上述方案中,所述输出预警的第一sql语句对应的优化建议,包括以下之一:28.在预警的第一sql语句未使用索引信息的情况下,输出第一优化建议或第二优化建议;其中,所述第一优化建议表征为对应的第一sql语句新增索引信息;所述第二优化建议表征基于相关的数据表的表结构信息中包含的第一索引信息优化查询条件的排列顺序;29.在预警的第一sql语句对应的查询条件中包括limit,且limit之后存在两个限制参数的情况下,输出表征通过增加主键字段进行偏移量控制的优化建议;30.在预警的第一sql语句中包含子查询,且子查询对应的扫描行数大于第一设定阈值的情况下,输出表征将子查询修改为连接查询的优化建议;31.在预警的第一sql语句相关的数据表的记录数大于第二设定阈值,且满足至少一个设定条件的情况下,输出表征备份并清除旧数据的优化建议;32.在预警的第一sql语句相关的数据表的记录数大于第二设定阈值,且不满足所有设定条件的情况下,输出表征对数据表进行分库或分表的优化建议。33.本技术实施例还提供了一种电子设备,包括:34.第一确定单元,用于基于第一设定统计周期内单位时长执行第一结构化查询语言sql语句消耗的第一平均时长,确定出每相邻两天的第一平均时长对应的第一增幅;35.第二确定单元,用于基于确定出的第一增幅,确定出关于第一增幅的第一均值;36.预测单元,用于基于所述第一均值和第一日期对应的第一平均时长,以及基于第一阈值,预测出第一sql语句为慢查询时对应的第二日期;其中,所述第一阈值表征慢查询的临界耗时;所述第一日期表征第一设定统计周期的最后一天;所述第二日期在所述第一日期之后;37.提示单元,用于在所述第二日期之前,输出关于对应的第一sql语句的慢查询预警提示。38.本技术实施例还提供了一种电子设备,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,39.其中,所述处理器用于运行所述计算机程序时,执行上述慢查询告警方法的步骤。40.本技术实施例还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述慢查询告警的方法的步骤。41.本技术实施例中,基于第一设定统计周期内单位时长执行第一结构化查询语言sql语句消耗的第一平均时长,确定出每相邻两天的第一平均时长对应的第一增幅;基于确定出的第一增幅,确定出关于第一增幅的第一均值;基于所述第一均值和第一日期对应的第一平均时长,以及基于第一阈值,预测出第一sql语句为慢查询时对应的第二日期;在所述第二日期之前,输出关于对应的第一sql语句的慢查询预警提示。相对于相关技术在出现慢查询时才告警,本方案可以基于第一sql语句对应的关于第一增幅的第一均值,预测出在未来一段时长内第一sql语句的执行时长的变化趋势,由此,可以提前预测出第一sql语句为慢查询时对应的第二日期,并提前对慢查询进行预警,以便相关人员针对可能出现的慢查询,确定出相应的解决方案,避免影响数据库的服务性能或影响业务的处理效率。附图说明42.图1为本技术实施例提供的一种慢查询告警方法的实现流程示意图;43.图2为本技术实施例提供的一种慢查询告警方法中确定第二日期的实现流程示意图;44.图3为本技术实施例提供的一种慢查询告警方法中确定第一阈值的实现流程示意图;45.图4为本技术应用实施例提供的一种慢查询告警方法中确定第一阈值的实现流程示意图;46.图5为本技术实施例提供的电子设备的结构示意图;47.图6为本技术实施例电子设备的硬件组成结构示意图。具体实施方式48.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。49.图1为本技术实施例提供的慢查询告警方法的实现流程示意图,其中,流程的执行主体为终端或服务器等电子设备。如图1示出的,慢查询告警方法包括:50.步骤101:基于第一设定统计周期内单位时长执行第一sql语句消耗的第一平均时长,确定出每相邻两天的第一平均时长对应的第一增幅。51.这里,电子设备每执行完一条sql语句,记录执行该条sql语句消耗的第一时长,并统计出单位时长内执行的相同的sql语句的第一次数;基于单位时长内对应的第一次数和该单位时长内每次执行该sql语句消耗的第一时长,计算出第一时长的均值,得到单位时长执行第一sql语句消耗的第一平均时长。按照这种方式,统计出第一设定统计周期内每个单位时长执行第一sql语句消耗的第一平均时长,并基于第一设定统计周期内每个单位时长执行第一sql语句消耗的第一平均时长,确定出第一设定统计周期内每天执行第一sql语句消耗的第一平均时长;并基于第一设定统计周期内每天执行第一sql语句消耗的第一平均时长,确定出每相邻两天的第一平均时长对应的第一增幅。52.其中,第一设定统计周期对应于当前日期之前的一段时长,例如,当前日期之前的前一个月,也就是说,第一设定统计周期的最后一天在当前日期之前。相同的sql语句是指剔除可变参数之后一样的sql语句。例如,sql语句为select*fromtablewherecolumn1=xandcolumn2=y,这条sql语句中的可变参数为x和y,剔除可变参数x和y之后的sql语句为select*fromtablewherecolumn1=andcolumn2=;如果任意两条sql语句在剔除可变参数后相同,那么这两条sql语句为相同的sql语句。53.可按以下方式计算每个单位时长执行第一sql语句消耗的第一平均时长:54.对第一单位时长内每次执行同一sql语句消耗的第一时长进行求和,得到该sql语句对应的第一时长的总和;统计出第一单位时长内执行该sql语句的第一次数;将第一时长的总和与统计出的第一次数之商,确定为第一单位时长该sql语句对应的第一时长的均值,得到第一单位时长内该sql语句对应的第一平均时长。其中,第一单位时长为任意一个单位时长。单位时长可以为小时或天,具体根据实际情况进行设置。实际应用时,单位时长为天。55.需要说明的是,在单位时长为小时的情况下,基于每天每个单位时长内同一sql语句对应的第一平均时长,进行均值运算,得到每天执行该sql语句对应的第一平均时长的均值;基于每天执行该sql语句对应的第一平均时长的均值,计算出每相邻两天的第一平均时长的均值对应的第一增幅。56.实际应用时,第一设定统计周期为一个月,单位时长为1天。57.需要说明的是,在实际应用中,有些sql语句的执行时长较长,有些sql语句的执行时长较短,为了减小误差,从而准确地预测出执行第一sql语句消耗的第一时长的变化趋势,以准确地对慢查询进行预警,在一些实施例中,在确定单位时长执行第一sql语句消耗的第一平均时长时,所述方法还包括:58.从第一设定统计周期内单位时长执行的sql语句中,确定出执行时长大于或等于第二阈值的第一sql语句;所述第二阈值小于所述第一阈值;59.计算出单位时长执行的所有第一sql语句对应的执行时长的均值,得到每天执行第一sql语句消耗的第一平均时长。60.这里,电子设备基于每条sql语句对应的执行时长,从第一设定统计周期内单位时长执行的sql语句中,确定出执行时长大于或等于第二阈值的第一sql语句,此时,确定出的所有第一sql语句对应的执行时长大于或等于第二阈值;基于确定出的所有第一sql语句对应的执行时长,计算出单位时长执行的所有第一sql语句对应的执行时长的均值,得到第一设定统计周期内单位时长执行第一sql语句消耗的第一平均时长。其中,所有第一sql语句表征同一sql语句,即,剔除可变参数之后一样的sql语句。61.其中,第二阈值表征需要关注sql语句的耗时趋势的临界耗时;第二阈值小于第一阈值,且大于第一阈值的一半。第一阈值表征慢查询的临界耗时。实际应用时,第二阈值可以为2m/3,m表征第一阈值。62.在一些实施例中,还可以将单位时长内执行次数大于设定次数,且执行时长大于第二阈值的sql语句,确定为第一sql语句,并按照上述方法计算出第一设定统计周期内单位时长内执行第一sql语句消耗的第一平均时长,以及确定出每相邻两天的第一平均时长对应的第一增幅。63.例如,当单位时长内执行任意sql语句的次数大于设定次数,且执行该sql语句消耗的第一时长大于第二阈值时,将该sql语句确定为第一sql语句,此时,需要预测该sql语句的耗时趋势。其中,电子设备可以在每日凌晨统计前一天执行的sql语句中,执行时长大于或等于第二阈值的第一sql语句;在单位时长内每次执行第一sql语句消耗的第一时长,可以记录为t1、t2、t3、……、tn;单位时长内第一sql语句对应的第一平均时长t=(t1 t2 t3 …… tn)/n。在单位时长为天的情况下,基于公式pd=(td-td-1)/td-1,计算出第一sql语句每相邻两天的第一平均耗时对应的第一增幅。pd表征第d天与第d-1天对应的第一增幅;td表征第d天的第一平均耗时,td-1表征第d-1天的第一平均耗时。64.步骤102:基于确定出的第一增幅,确定出关于第一增幅的第一均值。65.这里,电子设备可以基于确定出的全部或部分第一增幅,计算关于第一增幅的第一均值。其中,66.基于确定出的全部第一增幅计算第一增幅的第一均值是指,计算全部第一增幅的均值,得到第一增幅的第一均值。67.基于确定出的部分第一增幅,计算第一增幅的第一均值是指,从确定出的所有第一增幅中,删掉较低和较高的第一增幅后,得到剩余的第一增幅,并计算出剩余的所有第一增幅的均值,得到第一增幅的第一均值。由此,可以减小误差,提高确定出的第一增幅的第一均值的准确度。68.为了减小关于第一增幅的第一均值的误差,提高关于第一增幅的第一均值的准确度,在一些实施例中,在确定关于第一增幅的第一均值时,所述方法包括:69.计算设定比例与确定出的所有第一参数的总数之间的乘积,得到第一数量;所述第一参数包括第一增幅;所述设定比例小于0.5;70.按照从大到小的顺序,从确定出的第一参数中删除第一数量的第一参数;以及按照从小到大的顺序,从确定出的第一参数中删除第一数量的第一参数,得到剩余的第一参数;71.计算出剩余的所有第一参数的均值,得到关于第一增幅的第一均值。72.这里,电子设备计算设定比例与确定出的所有第一增幅的总数之间的乘积,得到第一数量;按照从大到小的顺序,从确定出的第一增幅中删除第一数量的第一增幅;以及按照从小到大的顺序,从确定出的第一增幅中删除第一数量的第一增幅,得到剩余的第一增幅;计算出剩余的所有第一增幅的均值,得到关于第一增幅的第一均值。在实际应用中,设定比例为5%。73.步骤103:基于所述第一均值和第一日期对应的第一平均时长,以及基于第一阈值,预测出第一sql语句为慢查询时对应的第二日期;其中,所述第一阈值表征慢查询的临界耗时;所述第一日期表征第一设定统计周期的最后一天;所述第二日期在所述第一日期之后。74.这里,电子设备基于第一sql语句对应的第一增幅的第一均值和第一日期对应的第一平均时长,预测出在第一日期之后的一段时长内,第一sql语句对应的第一平均时长的变化趋势;基于第一sql语句对应的第一平均时长的变化趋势,判断是否存在大于或等于第一阈值的第一平均时长;在存在大于或等于第一阈值的第一平均时长的情况下,确定出大于或等于第一阈值的第一平均时长时对应的第二日期,得到第一sql语句为慢查询时对应的第二日期。75.为了提高预测出的第二日期的准确度,如图2所示,在一些实施例中,所述预测出第一sql语句为慢查询时对应的第二日期,包括:76.步骤201:基于所述第一均值和第一日期对应的第一平均时长,以及基于第一阈值,确定出第一sql语句出现慢查询时距离所述第一日期的第一天数;77.步骤202:基于所述第一日期和所述第一天数,预测出第一sql语句为慢查询语句时对应的第二日期。78.这里,电子设备将关于第一增幅的第一均值、第一日期对应的第一平均时长以及第一阈值,代入设定公式,计算出第一sql语句为慢查询时距离第一日期的第一天数;在第一日期的基础上,增加计算出的第一天数,得到第一sql语句为慢查询语句时对应的第二日期。79.其中,设定公式为t×(1 p)x≥m,对设定公式进行变换可以得到p表征关于第一增幅的第一均值;t表征第一日期对应的第一平均时长;m表征第一阈值,对x取整即可得到第一天数,也就是说,在第一日期之后的第x天第一sql将会出现慢查询。80.需要说明的是,第一阈值可以是设定阈值,也可以根据第一设定统计周期之前执行第一sql语句消耗的时长确定出。设定阈值可以根据业务系统对实时性要求进行设置,例如,针对实时性要求高,低延时的业务系统,设置的第一阈值就相对小,比如300毫秒(ms)或者500ms,针对实时性容忍程度高的业务系统,设置的第一阈值相对大,比如1000ms或者更大。81.如图3所示,在一些实施例中,在根据第一设定统计周期之前执行第一sql语句消耗的时长,确定第一阈值时,所述方法包括:82.步骤301:确定出第二设定统计周期内单位时长执行第一sql语句消耗的第二平均时长;83.步骤302:基于确定出的第二平均时长,确定出所述第二统计周期内关于第二平均时长的第二均值;84.步骤303:将第一数值和第二数值中的最大值,确定为所述第一阈值;其中,所述第一数值表征所述第二均值的设定倍数;所述第二数值表征第三均值与所述第二均值之和;所述第三均值表征第三日期对应的第二平均时长与所述第二均值之间的均值;所述第三日期表征第二设定统计周期的最后一天。85.这里,第二设定统计周期对应的时间段,位于第一设定统计周期对应的时间段之前。第二设定统计周期可以为一周或一个月,可根据实际需要进行设置。86.电子设备基于第二设定统计周期内单位时长每次执行的第一sql语句对应的执行时长,计算出对应的均值,得到第二设定统计周期内单位时长执行第一sql语句消耗的第二平均时长;基于确定出的全部或部分第二平均时长,确定出第二统计周期内关于第二平均时长的第二均值;将确定出的第二均值与设定倍数之间的乘积,确定为第一数值;将第二设定统计周期的最后一天对应的第二平均时长与确定出的第二均值之间的均值,确定为第三均值;将第三均值与第二均值之和,确定为第二数值;将确定出的第一数值和确定出的第二数值中的最大值,确定为第一阈值。实际应用时,第二设定统计周期为一周,第二设定统计周期内的单位时长为1天。87.基于确定出的全部第二平均时长,确定出第二统计周期内关于第二平均时长的第二均值,是指,对确定出的全部第二平均时长求均值,得到第二统计周期内关于第二平均时长的第二均值。例如,第二统计周期内每个单位时长执行第一sql语句消耗的第二平均时长表示为a1、a2、a3……an;第二统计周期内关于第二平均时长的第二均值an=(a1 a2 a3 ……an)/n。此时,第一阈值m=max(2an,(an-an)/2 an)。2an表征第一数值,(an-an)/2 an表征第二数值。88.基于确定出的部分第二平均时长,确定出第二统计周期内关于第二平均时长的第二均值,是指,从确定出的所有第二平均时长中,删掉较低和较高的第二平均时长后,得到剩余的第二平均时长,并计算出剩余的所有第二平均时长的均值,得到第二统计周期内关于第二平均时长的第二均值。由此,可以减小误差,提高确定出的第二平均时长的第二均值的准确度。例如,第二统计周期内每个单位时长执行第一sql语句消耗的第二平均时长表示为a1、a2、a3……an;从确定出的第二平均时长中删掉m个第二平均时长之后,剩余的第二平均时长为a1、a2、a3……am,第二统计周期内关于第二平均时长的第二均值am=(a1 a2 a3 ……am)/m。此时,第一阈值m=max(2am,(an-am)/2 am)。2am表征第一数值,(an-am)/2 am表征第二数值。89.需要说明的是,不同的第二设定统计周期内对应的第一阈值可能不同,也就是说,按照步骤301至步骤303的方法确定出的第一阈值是动态变化的。在一些实施例中,也可以先设置一个默认的第一阈值,将默认的第一阈值和通过上述方法确定出的第一阈值中的最大值,确定为最终的第一阈值。90.为了减小关于第二平均时长的第二均值的误差,提高关于第二平均时长的第二均值的准确度,在一些实施例中,在确定关于第二平均时长的第二均值时,所述方法包括:91.计算设定比例与确定出的所有第一参数的总数之间的乘积,得到第一数量;所述第一参数包括第二平均时长;所述设定比例小于0.5;92.按照从大到小的顺序,从确定出的第一参数中删除第一数量的第一参数;以及按照从小到大的顺序,从确定出的第一参数中删除第一数量的第一参数,得到剩余的第一参数;93.计算出剩余的所有第一参数的均值,得到关于第二平均时长的第二均值。94.这里,电子设备计算设定比例与确定出的所有第二平均时长的总数之间的乘积,得到第一数量;按照从大到小的顺序,从确定出的第二平均时长中删除第一数量的第二平均时长;以及按照从小到大的顺序,从确定出的第二平均时长中删除第一数量的第二平均时长,得到剩余的第二平均时长;计算出剩余的所有第二平均时长的均值,得到关于第二平均时长的第一均值。在实际应用中,设定比例为5%。95.步骤104:在所述第二日期之前,输出关于对应的第一sql语句的慢查询预警提示。96.这里,电子设备在预测出第一sql语句为慢查询时对应的第二日期的情况下,在达到第二日期之前,输出关于对应的第一sql语句的慢查询预警提示,从而能够对慢查询进行提前预警,以便相关人员针对可能出现的慢查询,确定出相应的解决方案,避免影响数据库的服务性能或影响业务的处理效率。97.实际应用时,电子设备从预测出的第二日期之前的日期中,确定出第三日期,将对应的第一sql语句添加至预警列表,并从第三日期开始每天输出关于对应的第一sql语句的慢查询预警提示。其中,第三日期表征最早需要对对应的第一sql语句进行慢查询预警的日期。98.在本技术实施例中,基于第一设定统计周期内单位时长执行第一结构化查询语言sql语句消耗的第一平均时长,确定出每相邻两天的第一平均时长对应的第一增幅;基于确定出的第一增幅,确定出关于第一增幅的第一均值;基于所述第一均值和第一日期对应的第一平均时长,以及基于第一阈值,预测出第一sql语句为慢查询时对应的第二日期;在所述第二日期之前,输出关于对应的第一sql语句的慢查询预警提示。由此,可以提前预测出慢查询,并提前对慢查询进行预警,以便相关人员针对可能出现的慢查询,确定出相应的解决方案,避免影响数据库的服务性能或影响业务的处理效率。99.为了便于相关人员能够在出现的慢查询之前采取有效措施,从而尽可能减少或避免出现慢查询,在一些实施例中,在所述预测出第一sql语句为慢查询时对应的第二日期之后,所述方法还包括:100.输出预警的第一sql语句对应的优化建议。101.这里,电子设备从数据库中查找预警的第一sql语句对应的优化建议;在查找到预警的第一sql语句对应的优化建议的情况下,输出对应查找到的优化建议。在未查出到预警的第一sql语句对应的优化建议的情况下,分析预警的第一sql语句和相关的数据表,得到分析结果;并基于分析结果输出对应的优化建议。由此,相关人员可以参考输出的优化建议提前优化对应的第一sql语句,从而有效避免预警的sql语句产生慢查询时对业务系统产生的影响,不需要相关人员人工进行分析,可以提高sql语句的优化效率。其中,数据库可以是本地数据库,也可以是云端数据库。102.需要说明的是,电子设备可以关联输出预警的sql语句和对应的优化建议,例如,将预警的sql语句和对应的优化建议,以邮件的形式进行发送。103.为了便于相关人员针对不同的sql语句采取有效的优化策略,在一些实施例中,所述输出预警的第一sql语句对应的优化建议,包括以下之一:104.在预警的第一sql语句未使用索引信息的情况下,输出第一优化建议或第二优化建议;其中,所述第一优化建议表征为对应的第一sql语句新增索引信息;所述第二优化建议表征基于相关的数据表的表结构信息中包含的第一索引信息优化查询条件的顺序;105.在预警的第一sql语句对应的查询条件中包括limit,且limit之后存在两个限制参数的情况下,输出表征通过增加主键字段进行偏移量控制的优化建议;106.在预警的第一sql语句中包含子查询,且子查询对应的扫描行数大于第一设定阈值的情况下,输出表征将子查询修改为连接查询的优化建议;107.在预警的第一sql语句相关的数据表的记录数大于第二设定阈值,且满足至少一个设定条件的情况下,输出表征备份并清除旧数据的优化建议;108.在预警的第一sql语句相关的数据表的记录数大于第二设定阈值,且不满足所有设定条件的情况下,输出表征对数据表进行分库或分表的优化建议。109.这里,电子设备分析预警的第一sql语句相关的数据表,得到数据表的表结构信息,并从该表结构信息中确定出数据表中每一条数据记录对应的第一索引信息;通过explain命令模拟执行预警的第一sql语句,获得执行预警的第一sql语句时的相关信息,该相关信息包括扫描行数、使用的第二索引信息、查询条件和连接方式等。其中,第一索引信息和第二索引信息中均包括至少一个字段。扫描行数是指扫描相关的数据表的行数。连接方式包括左连接、右连接、子查询和类连接中的至少之一。110.基于确定出的数据表中每一条数据记录对应的第一索引信息,以及基于执行预警的第一sql语句时的相关信息,输出预警的第一sql语句对应的优化建议。111.其中,电子设备判断预警的第一sql语句是否使用了索引信息,得到第一判断结果。在第一判断结果表征预警的第一sql语句未使用索引信息的情况下,从预警的第一sql语句中读取的所有查询条件,将读取到的所有查询条件与确定出的数据表对应的所有第一索引信息进行对比;在确定出的数据表对应的所有第一索引信息中均不包括读取到的查询条件中的字段的情况下,输出关于预警的第一sql语句对应的第一优化建议,以便相关人员为对应的第一sql语句新增索引信息。在确定出的数据表对应的所有第一索引信息中包括读取到的全部或部分查询条件中的字段的情况下,基于对应的第一索引信息中包括的字段的排列顺序,输出关于预警的第一sql语句对应的第二优化建议,第二优化建议表征基于对应的第一索引信息中包括的字段的排列顺序,优化预警的第一sql语句中查询条件的排列顺序,以使得优化后的查询条件对应的查询字段的排列顺序,与对应的第一索引信息中包括的字段的排列顺序相匹配。112.电子设备判断预警的sql语句对应的查询条件中是否包括limit关键字,得到第二判断结果。在第二判断结果表征在预警的第一sql语句对应的查询条件中包括limit,且limit之后存在两个限制参数的情况下,输出表征通过增加主键字段进行偏移量控制的优化建议。其中,查询条件中包括limit,表征本次查询涉及翻页操作,主键字段的值为上一页查询到的值。113.电子设备判断预警的sql语句中是否包含子查询,得到第三判断结果。在第三判断结果表征预警的sql语句中包含子查询的情况下,通过explain命令模拟执行该子查询,确定出该子查询对应的扫描行数;在确定出的扫描行数大于第一设定阈值的情况下,输出表征关于预警的第一sql语句对应的将子查询修改为连接查询的优化建议。通过以下方式识别出子查询:分析预警的第一sql语句的查询条件中是否存在设定关键字;在存在设定关键字,且该设定关键字之后还存在其他的查询sql语句的情况下,预警的第一sql语句存在子查询。设定关键字包括in、notin、exist或notexist等。第一设定阈值可以为1000行或者5000行等,也可以根据实际情况设置。114.电子设备统计预警的第一sql语句相关的数据表的记录数,并在数据表的记录数大于第二设定阈值的情况下,判断该数据表是否满足至少一个设定条件,在预警的第一sql语句相关的数据表的记录数大于第二设定阈值,且该数据表满足至少一个设定条件的情况下,输出表征备份并清除旧数据的优化建议;在预警的第一sql语句相关的数据表的记录数大于第二设定阈值,且该数据表不满足所有设定条件的情况下,输出表征对数据表进行分库或分表的优化建议。115.其中,在实际应用时,第二设定阈值可以为1000万行;设定条件包括以下之一:116.数据表的表名以log、flow等关键字结尾;117.数据表的表名中包括流水、记录或日志等关键字;118.数据表的被查询频度大于设定频度,每次查询对应的查询条件中均包括的控制日期与当前日期接近。119.图4为本技术应用实施例提供的一种慢查询告警方法中确定第一阈值的实现流程示意图,如图4示出的,慢查询告警方法包括:120.步骤401:基于第一设定统计周期内单位时长执行第一sql语句消耗的第一平均时长,确定出每相邻两天的第一平均时长对应的第一增幅。121.步骤402:基于确定出的第一增幅,确定出关于第一增幅的第一均值。122.步骤403:基于所述第一均值和第一日期对应的第一平均时长,以及基于第一阈值,确定出第一sql语句为慢查询时距离所述第一日期的第一天数。123.步骤404:基于所述第一日期和所述第一天数,预测出第一sql语句为慢查询语句时对应的第二日期。124.步骤405:从预测出的第二日期之前的日期中,确定出第三日期。125.步骤406:从所述第三日期开始每天输出关于对应的第一sql语句的慢查询预警提示,以及输出预警的第一sql语句对应的优化建议。126.需要说明的是,步骤401至步骤403的实现过程,请参照步骤101至步骤103的相关描述,此处不赘述。127.为实现本技术实施例的慢查询告警方法,本技术实施例还提供了一种电子设备,如图5所示,该电子设备包括:128.第一确定单元41,用于基于第一设定统计周期内单位时长执行第一结构化查询语言sql语句消耗的第一平均时长,确定出每相邻两天的第一平均时长对应的第一增幅;129.第二确定单元42,用于基于确定出的第一增幅,确定出关于第一增幅的第一均值;130.预测单元43,用于基于所述第一均值和第一日期对应的第一平均时长,以及基于第一阈值,预测出第一sql语句为慢查询时对应的第二日期;其中,所述第一阈值表征慢查询的临界耗时;所述第一日期表征第一设定统计周期的最后一天;所述第二日期在所述第一日期之后;131.提示单元44,用于在所述第二日期之前,输出关于对应的第一sql语句的慢查询预警提示。132.在一些实施例中,该电子设备还包括:133.第三确定单元,用于确定出第二设定统计周期内单位时长执行第一sql语句消耗的第二平均时长;134.第四确定单元,用于基于确定出的第二平均时长,确定出所述第二统计周期内关于第二平均时长的第二均值;135.第五确定单元,用于将第一数值和第二数值中的最大值,确定为所述第一阈值;其中,所述第一数值表征所述第二均值的设定倍数;所述第二数值表征第三均值与所述第二均值之和;所述第三均值表征第三日期对应的第二平均时长与所述第二均值之间的均值;所述第三日期表征第二设定统计周期的最后一天。136.在一些实施例中,第二确定单元42或第四确定单元具体用于:137.计算设定比例与确定出的所有第一参数的总数之间的乘积,得到第一数量;所述第一参数包括第一增幅或第二平均时长;所述设定比例小于0.5;138.按照从大到小的顺序,从确定出的第一参数中删除第一数量的第一参数;以及按照从小到大的顺序,从确定出的第一参数中删除第一数量的第一参数,得到剩余的第一参数;139.计算出剩余的所有第一参数的均值,得到关于第一增幅的第一均值或关于第二平均时长的第二均值。140.在一些实施例中,第一确定单元41还用于:141.从第一设定统计周期内单位时长执行的sql语句中,确定出执行时长大于或等于第二阈值的第一sql语句;所述第二阈值小于所述第一阈值;142.计算出单位时长执行的所有第一sql语句对应的执行时长的均值,得到单位时长执行第一sql语句消耗的第一平均时长。143.在一些实施例中,预测单元43具体用于:144.基于所述第一均值和第一日期对应的第一平均时长,以及基于第一阈值,确定出第一sql语句为慢查询时距离所述第一日期的第一天数;145.基于所述第一日期和所述第一天数,预测出第一sql语句为慢查询语句时对应的第二日期。146.在一些实施例中,提示单元44还用于:147.输出预警的第一sql语句对应的优化建议。148.在一些实施例中,提示单元44具体用于执行以下之一:149.在预警的第一sql语句未使用索引信息的情况下,输出第一优化建议或第二优化建议;其中,所述第一优化建议表征为对应的第一sql语句新增索引信息;所述第二优化建议表征基于相关的数据表的表结构信息中包含的第一索引信息优化查询条件的排列顺序;150.在预警的第一sql语句对应的查询条件中包括limit,且limit之后存在两个限制参数的情况下,输出表征通过增加主键字段进行偏移量控制的优化建议;151.在预警的第一sql语句中包含子查询,且子查询对应的扫描行数大于第一设定阈值的情况下,输出表征将子查询修改为连接查询的优化建议;152.在预警的第一sql语句相关的数据表的记录数大于第二设定阈值,且满足至少一个设定条件的情况下,输出表征备份并清除旧数据的优化建议;153.在预警的第一sql语句相关的数据表的记录数大于第二设定阈值,且不满足所有设定条件的情况下,输出表征对数据表进行分库或分表的优化建议。154.实际应用时,电子设备包括的各单元可通过电子设备中的处理器,比如中央处理器(cpu,centralprocessingunit)、数字信号处理器(dsp,digitalsignalprocessor)、微控制单元(mcu,microcontrollerunit)或可编程门阵列(fpga,field-programmablegatearray)等实现。155.需要说明的是:上述实施例提供的电子设备在进行慢查询告警时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的电子设备与慢查询告警方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。156.基于上述程序模块的硬件实现,且为了实现本技术实施例的方法,本技术实施例还提供了一种电子设备。图6为本技术实施例电子设备的硬件组成结构示意图,如图6所示,电子设备6包括:157.通信接口61,能够与其它设备比如网络设备等进行信息交互;158.处理器62,与所述通信接口61连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的慢查询告警方法。而所述计算机程序存储在存储器63上。159.当然,实际应用时,电子设备6中的各个组件通过总线系统64耦合在一起。可理解,总线系统64用于实现这些组件之间的连接通信。总线系统64除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将各种总线都标为总线系统64。160.本技术实施例中的存储器63用于存储各种类型的数据以支持电子设备6的操作。这些数据的示例包括:用于在电子设备6上操作的任何计算机程序。161.可以理解,存储器63可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom,readonlymemory)、可编程只读存储器(prom,programmableread-onlymemory)、可擦除可编程只读存储器(eprom,erasableprogrammableread-onlymemory)、电可擦除可编程只读存储器(eeprom,electricallyerasableprogrammableread-onlymemory)、磁性随机存取存储器(fram,ferromagneticrandomaccessmemory)、快闪存储器(flashmemory)、磁表面存储器、光盘、或只读光盘(cd-rom,compactdiscread-onlymemory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(ram,randomaccessmemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram,staticrandomaccessmemory)、同步静态随机存取存储器(ssram,synchronousstaticrandomaccessmemory)、动态随机存取存储器(dram,dynamicrandomaccessmemory)、同步动态随机存取存储器(sdram,synchronousdynamicrandomaccessmemory)、双倍数据速率同步动态随机存取存储器(ddrsdram,doubledataratesynchronousdynamicrandomaccessmemory)、增强型同步动态随机存取存储器(esdram,enhancedsynchronousdynamicrandomaccessmemory)、同步连接动态随机存取存储器(sldram,synclinkdynamicrandomaccessmemory)、直接内存总线随机存取存储器(drram,directrambusrandomaccessmemory)。本技术实施例描述的存储器63旨在包括但不限于这些和任意其它适合类型的存储器。162.上述本技术实施例揭示的方法可以应用于处理器62中,或者由处理器62实现。处理器62可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器62中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器62可以是通用处理器、dsp,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器62可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器63,处理器62读取存储器63中的程序,结合其硬件完成前述方法的步骤。163.可选地,所述处理器62执行所述程序时实现本技术实施例的各个方法中由终端实现的相应流程,为了简洁,在此不再赘述。164.在示例性实施例中,本技术实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的第一存储器63,上述计算机程序可由终端的处理器62执行,以完成前述方法所述步骤。计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、flashmemory、磁表面存储器、光盘、或cd-rom等存储器。165.在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。166.上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。167.另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。168.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。169.需要说明的是,本技术实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。170.需要说明的是,本技术实施例中的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中术语“至少一种”表示多个中的任意一种或多种中的至少两种的任意组合,例如,包括a、b、c中的至少一种,可以表示包括从a、b和c构成的集合中选择的任意一个或多个元素。171.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献