掌桥专利:专业的专利平台
掌桥专利
首页

慢查询处理方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 11:05:16


慢查询处理方法、装置、电子设备及存储介质

技术领域

本公开涉及数据处理技术领域,尤其涉及一种慢查询处理方法、装置、电子设备及存储介质。

背景技术

目前对慢查询的处理中,一般设置指定时间,比如1秒,将执行时间大于1秒的数据库操作语句认定为慢查询语句,数据库操作语句可以为查询语句,例如SQL语句,会将执行时间大于1秒的SQL(Structured Query Language,结构化查询语言)语句认定为慢查询语句,由于指定时间是固定的,导致现有慢查询处理不能有效适用各业务线或各场景的需求。并且,相关技术中,由人工从慢查询语句中筛选需要处理的慢查询语句,导致慢查询的处理不够及时;另外,如果告警的慢查询语句很多,会导致慢查询处理的并发数据很多,不仅造成数据处理压力,还使得慢查询语句不能得到有效及时的处理,从而导致数据库的服务性能较低。

发明内容

本公开提供一种慢查询处理方法、装置、电子设备及存储介质,以至少解决相关技术中如何避免由慢查询中指定时间固定导致的慢查询处理效率低和有效性差的问题。本公开的技术方案如下:

根据本公开实施例的第一方面,提供一种慢查询处理方法,包括:

获取查询语句集合中每个查询语句的执行时间信息;

根据每个查询语句的执行时间信息,确定基线时间信息;

根据所述基线时间信息,从所述查询语句集合中筛选出慢查询语句集合,所述慢查询语句集合包括多个慢查询语句;

根据所述多个慢查询语句对应的执行时间信息,确定所述多个慢查询语句对应的告警优先级;

根据所述多个慢查询语句对应的告警优先级,对所述多个慢查询语句进行告警处理。

在一种可能的实现方式中,所述根据所述多个慢查询语句对应的执行时间信息,确定所述多个慢查询语句对应的告警优先级步骤之前,所述方法还包括:

获取所述多个慢查询语句对应的执行次数信息;

所述根据所述多个慢查询语句对应的执行时间信息,确定所述多个慢查询语句对应的告警优先级步骤包括:

根据所述多个慢查询语句对应的执行时间信息和执行次数信息,确定所述多个慢查询语句对应的告警优先级。

在一种可能的实现方式中,所述根据所述多个慢查询语句对应的执行时间信息和执行次数信息,确定所述多个慢查询语句对应的告警优先级步骤包括:

获取预设排序参考信息,所述预设排序参考信息包括基线排序信息;

根据所述多个慢查询语句对应的执行时间信息,确定目标基线时间信息;

根据所述多个慢查询语句对应的执行次数信息,确定目标基线次数信息;

基于所述基线排序信息和所述目标基线时间信息,将每个慢查询语句对应的执行时间信息映射到所述预设排序参考信息中对应的时间排序信息;

基于所述基线排序信息和所述目标基线次数信息,将每个慢查询语句对应的执行次数信息映射到所述预设排序参考信息中对应的次数排序信息;

根据所述时间排序信息和所述次数排序信息,确定所述多个慢查询语句的排序结果;

根据所述排序结果,确定所述多个慢查询语句对应的告警优先级。

在一种可能的实现方式中,所述慢查询处理方法还包括:

接收终端的优先级配置请求,所述优先级配置请求中包括预设数量的告警优先级以及每个告警优先级对应的查询语句数量占比信息;

将所述预设数量的告警优先级以及每个告警优先级对应的查询语句数量占比信息作为预设优先级信息。

所述根据所述排序结果,确定所述多个慢查询语句对应的告警优先级步骤包括:

根据所述预设优先级信息和所述排序结果,确定所述多个慢查询语句对应的告警优先级。

在一种可能的实现方式中,所述根据所述预设优先级信息和所述排序结果,确定所述多个慢查询语句对应的告警优先级步骤包括:

根据所述排序结果和每个告警优先级对应的查询语句数量占比信息,将所述多个慢查询语句划分为所述预设数量的慢查询集合;

将每个慢查询集合对应的告警优先级作为每个慢查询集合中慢查询语句的告警优先级。

在一种可能的实现方式中,所述根据所述预设优先级信息和所述排序结果,确定所述多个慢查询语句对应的告警优先级步骤包括:

根据所述排序结果和所述基线排序信息,将所述多个慢查询语句划分为两个等级;

确定所述两个等级中慢查询语句的数量与所述多个慢查询语句的总数量的目标占比信息;

若所述目标占比信息与所述查询语句数量占比信息不匹配,获取每个等级中的慢查询语句的目标排序结果;

根据每个等级中的慢查询语句的目标排序结果和所述基线排序信息,将每个等级中的慢查询语句划分为两个等级;

若所述目标占比信息与所述查询语句数量占比信息匹配,确定每个等级对应的告警优先级;

将每个等级对应的告警优先级确定为每个等级中的慢查询语句的告警优先级。

在一种可能的实现方式中,所述慢查询处理方法还包括:

获取预设告警优先级信息;

所述根据所述多个慢查询语句对应的告警优先级,对所述多个慢查询语句进行告警处理步骤包括:

根据所述多个慢查询语句对应的告警优先级,从所述多个慢查询语句中筛选出与所述预设告警优先级信息匹配的待告警查询语句;

对所述待告警查询语句进行告警处理。

根据本公开实施例的第二方面,提供一种慢查询处理装置,包括:

执行时间信息获取模块,被配置为执行获取查询语句集合中每个查询语句的执行时间信息;

基线时间信息确定模块,被配置为执行根据每个查询语句的执行时间信息,确定基线时间信息;

慢查询筛选模块,被配置为执行根据所述基线时间信息,从所述查询语句集合中筛选出慢查询语句集合,所述慢查询语句集合包括多个慢查询语句;

告警优先级确定模块,被配置为执行根据所述多个慢查询语句对应的执行时间信息,确定所述多个慢查询语句对应的告警优先级;

慢查询处理模块,被配置为执行根据所述多个慢查询语句对应的告警优先级,对所述多个慢查询语句进行告警处理。

在一种可能的实现方式中,所述慢查询处理装置还包括:

执行次数信息获取模块,被配置为执行获取所述多个慢查询语句对应的执行次数信息;

所述告警优先级确定模块包括:

告警优先级确定单元,被配置为执行根据所述多个慢查询语句对应的执行时间信息和执行次数信息,确定所述多个慢查询语句对应的告警优先级。

在一种可能的实现方式中,所述告警优先级确定单元包括:

预设排序参考信息获取子单元,被配置为执行获取预设排序参考信息,所述预设排序参考信息包括基线排序信息;

目标基线时间信息确定子单元,被配置为执行根据所述多个慢查询语句对应的执行时间信息,确定目标基线时间信息;

目标基线次数信息确定子单元,被配置为执行根据所述多个慢查询语句对应的执行次数信息,确定目标基线次数信息;

时间排序信息子映射子单元,被配置为执行基于所述基线排序信息和所述目标基线时间信息,将每个慢查询语句对应的执行时间信息映射到所述预设排序参考信息中对应的时间排序信息;

次数排序信息映射子单元,被配置为执行基于所述基线排序信息和所述目标基线次数信息,将每个慢查询语句对应的执行次数信息映射到所述预设排序参考信息中对应的次数排序信息;

排序结果确定子单元,被配置为执行根据所述时间排序信息和所述次数排序信息,确定所述多个慢查询语句的排序结果;

告警优先级确定子单元,被配置为执行根据所述排序结果,确定所述多个慢查询语句对应的告警优先级。

在一种可能的实现方式中,所述慢查询处理装置还包括:

优先级配置请求接收模块,被配置为执行接收终端的优先级配置请求,所述优先级配置请求中包括预设数量的告警优先级以及每个告警优先级对应的查询语句数量占比信息;

预设优先级信息获取模块,被配置为执行将所述预设数量的告警优先级以及每个告警优先级对应的查询语句数量占比信息作为预设优先级信息。

所述告警优先级确定子单元包括:

第一告警优先级确定子单元,被配置为执行根据所述预设优先级信息和所述排序结果,确定所述多个慢查询语句对应的告警优先级。

在一种可能的实现方式中,所述第一告警优先级确定子单元包括:

慢查询集合划分子单元,被配置为执行根据所述排序结果和每个告警优先级对应的查询语句数量占比信息,将所述多个慢查询语句划分为所述预设数量的慢查询集合;

第二告警优先级确定子单元,被配置为执行将每个慢查询集合对应的告警优先级作为每个慢查询集合中慢查询语句的告警优先级。

在一种可能的实现方式中,所述第一告警优先级确定子单元包括:

第一等级划分子单元,被配置为执行根据所述排序结果和所述基线排序信息,将所述多个慢查询语句划分为两个等级;

目标占比信息确定子单元,被配置为执行确定所述两个等级中慢查询语句的数量与所述多个慢查询语句的总数量的目标占比信息;

目标排序结果确定子单元,被配置为执行若所述目标占比信息与所述查询语句数量占比信息不匹配,获取每个等级中的慢查询语句的目标排序结果;

第二等级划分子单元,被配置为执行根据每个等级中的慢查询语句的目标排序结果和所述基线排序信息,将每个等级中的慢查询语句划分为两个等级;

等级对应的优先级确定子单元,被配置为执行若所述目标占比信息与所述查询语句数量占比信息匹配,确定每个等级对应的告警优先级;

第三告警优先级确定子单元,被配置为将每个等级对应的告警优先级确定为每个等级中的慢查询语句的告警优先级。

在一种可能的实现方式中,所述慢查询处理装置还包括:

预设告警优先级信息获取模块,被配置为执行获取预设告警优先级信息;

所述慢查询处理模块包括:

待告警查询语句筛选单元,被配置为执行根据所述多个慢查询语句对应的告警优先级,从所述多个慢查询语句中筛选出与所述预设告警优先级信息匹配的待告警查询语句;

慢查询处理单元,被配置为执行对所述待告警查询语句进行告警处理。

根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如上述第一方面中任一项所述的方法。

根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行本公开实施例的第一方面中任一所述方法。

根据本公开实施例的第五方面,提供一种计算机程序产品,包括计算机指令,所述计算机指令被处理器执行时实现本公开实施例的第一方面中任一项所述方法。

本公开的实施例提供的技术方案至少带来以下有益效果:

根据每个查询语句的执行时间信息,确定基线时间信息;并根据基线时间信息,从查询语句集合中筛选出慢查询集合,根据多个慢查询语句对应的执行时间信息,确定多个慢查询语句对应的告警优先级,根据多个慢查询语句对应的告警优先级,对多个慢查询语句进行告警处理,使得用于筛选慢查询语句的基线时间信息是动态确定的,能够适用各业务线或各场景的需求,并且可以根据告警优先级进行针对性的告警,避免告警并发数量过多,减轻数据处理压力,进而可以有效处理优先级高的慢查询语句,使得慢查询处理可以更加及时和有效,可以提高数据库的服务性能。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。

图1是根据一示例性实施例示出的一种应用环境的示意图。

图2是根据一示例性实施例示出的慢查询处理方法的流程图。

图3是根据一示例性实施例示出的慢查询处理方法的流程图。

图4是根据一示例性实施例示出的慢查询处理方法的流程图。

图5是根据一示例性实施例示出的根据多个慢查询语句对应的执行时间信息和执行次数信息,确定多个慢查询语句对应的告警优先级的方法流程图。

图6是根据一示例性实施例示出的根据多个慢查询语句对应的执行时间信息和执行次数信息,确定多个慢查询语句对应的告警优先级的方法流程图。

图7是根据一示例性实施例示出的根据预设优先级信息和排序结果,确定多个慢查询语句对应的告警优先级的方法流程图。

图8是根据一示例性实施例示出的根据预设优先级信息和排序结果,确定多个慢查询语句对应的告警优先级的方法流程图。

图9是根据一示例性实施例示出的一种慢查询处理装置框图。

图10是根据一示例性实施例示出的一种用于慢查询处理的电子设备的框图。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

请参阅图1,图1是根据一示例性实施例示出的一种应用环境的示意图,如图1所示,该应用环境可以包括服务器01和终端02。

在一个可选的实施例中,服务器01可以用于执行慢查询处理方法。具体的,服务器01可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。

在一个可选的实施例中,终端02可以用于用户设置预设告警优先级信息、发送优先级配置请求至服务器01以及接收慢查询告警信息;该用户可以是指开发人员。具体的,终端02可以包括但不限于智能手机、台式计算机、平板电脑、笔记本电脑、智能音箱、数字助理、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、智能可穿戴设备等类型的电子设备。可选的,电子设备上运行的操作系统可以包括但不限于安卓系统、IOS系统、linux、windows等。

此外,需要说明的是,图1所示的仅仅是本公开提供的慢查询处理方法的一种应用环境。

本说明书实施例中,上述服务器01以及终端02可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。

图2是根据一示例性实施例示出的慢查询处理方法的流程图。如图2所示,可以包括以下步骤。

在步骤S201中,获取查询语句集合中每个查询语句的执行时间信息。

本说明书实施例中,可以从查询日志中获取全量查询语句作为查询语句集合,并可以从查询日志中获取查询语句集合中每个查询语句的执行次数信息和执行时间信息。例如,当一个查询语句的执行次数信息中的执行次数大于1时,其中,每一次执行对应一个执行时间,可以选择任一次执行对应的执行时间作为该一个查询语句的执行时间信息,本公开对此不作限定。当一个查询语句的执行次数信息中的执行次数为1时,将从查询日志中获取的该一个查询语句的执行时间信息作为该一个查询语句的执行时间信息。在一个示例中,查询语句可以为SQL语句,SQL语句可以包括SQL查询语句、SQL存储语句、SQL读取语句等,本公开对此不作限定。相应地,查询日志可以为SQL日志。

在一个示例中,可以从查询日志中获取全量查询语句,并可以对全量查询语句进行预处理,比如去重处理,得到预处理后的查询语句,将该预处理后的查询语句作为查询语句集合。可以获取查询语句集合中每个查询语句对应的执行时间;从而可以将每个查询语句对应的执行时间的均值作为每个查询语句的执行时间信息。通过将每个查询语句对应的执行时间的均值作为每个查询语句的执行时间信息,使得每个查询语句的执行时间信息更加准确。

在步骤S203中,根据每个查询语句的执行时间信息,确定基线时间信息。

本说明书实施例中,可以根据每个查询语句的执行时间信息,确定基线时间信息。在一个示例中,可以将每个查询语句的执行时间信息的统计值作为基线时间信息,该统计值可以包括均值、标准差、均值与标准差的和等,本公开对此不作限定。

在步骤S205中,根据基线时间信息,从查询语句集合中筛选出慢查询语句集合,该慢查询语句集合可以包括多个慢查询语句。

本说明书实施例中,可以将确定的基线时间信息作为慢查询时间阈值,从而可以根据该基线时间信息,从查询语句集合中筛选出慢查询语句集合,例如,可以从查询语句集合中筛选出执行时间信息大于基线时间信息的查询语句作为慢查询语句,该慢查询语句可以构成慢查询语句集合。

在步骤S207中,根据多个慢查询语句对应的执行时间信息,确定多个慢查询语句对应的告警优先级。

本说明书实施例中,可以根据多个慢查询语句对应的执行时间信息,确定多个慢查询语句对应的告警优先级。该告警优先级可以表征慢查询语句的运行性能,例如,执行时间信息越长,慢查询语句的运行性能越差,对应的告警优先级越高,本公开对此不作限定。在一个示例中,可以根据执行时间信息,将多个慢查询语句划分为预设数量的等级,例如,可以按照执行时间信息从长到短的顺序,将多个慢查询语句进行排序,可以根据该排序的顺序,将多个慢查询语句划分为预设数量的等级,比如可以将多个慢查询语句进行该预设数量的等分,从而将多个慢查询语句划分为预设数量的等级。以上仅仅是确定告警优先级的示例,本公开对此不作限定。

在步骤S209中,根据多个慢查询语句对应的告警优先级,对多个慢查询语句进行告警处理。

本说明书实施例中,可以根据多个慢查询语句对应的告警优先级,对多个慢查询语句进行告警处理。在一个示例中,可以从多个慢查询语句中,选择告警优先级高于优先级阈值的慢查询语句,可以对该告警优先级高于优先级阈值的慢查询语句进行告警处理,例如,可以发送慢查询告警信息至终端,该终端可以为开发人员的终端,例如SQL开发人员的终端。

在另一个示例中,可以根据告警优先级的高低顺序,对多个慢查询语句进行分批次告警处理。例如,可以对告警优先级较高的慢查询语句进行告警处理,待告警优先级较高的慢查询语句的告警结束后,可以对告警优先级较低的慢查询语句进行告警处理,依次类推,直至多个慢查询语句均进行告警处理为止。

可选地,对于触发告警处理的慢查询语句,可以修改慢查询语句的程序,以优化慢查询语句的运行性能,比如降低慢查询语句的执行时间。

根据每个查询语句的执行时间信息,确定基线时间信息;并根据基线时间信息,从查询语句集合中筛选出慢查询语句集合,根据多个慢查询语句对应的执行时间信息,确定多个慢查询语句对应的告警优先级,根据多个慢查询语句对应的告警优先级,对多个慢查询语句进行告警处理,使得用于筛选慢查询语句的基线时间信息是动态确定的,能够适用各业务线或各场景的需求,并且可以根据告警优先级进行针对性的告警,避免告警并发数量过多,减轻数据处理压力,进而可以有效处理优先级高的慢查询语句,使得慢查询处理可以更加及时和有效,可以提高数据库的服务性能。

图3是根据一示例性实施例示出的慢查询处理方法的流程图。在一种可能的实现方式中,如图3所示,慢查询处理方法还可以包括:

在步骤S301中,获取预设告警优先级信息。

相应地,步骤S209可以包括:

在步骤S303中,根据多个慢查询语句对应的告警优先级,从多个慢查询语句中筛选出与预设告警优先级信息匹配的待告警查询语句;

在步骤S305中,对待告警查询语句进行告警处理。

本说明书实施例中,可以获取预设告警优先级信息,该预设告警优先级信息可以是用户(开发人员)设置的;该预设告警优先级信息可以是指需要触发告警处理的告警优先级,可以包括预设数量的告警优先级中一个或多个。例如告警优先级可以包括第一优先级、第二优先级和第三优先级,预设告警优先级信息可以包括第一优先级和第二优先级。本公开对此不作限定。其中,第一优先级对应的执行时间信息可以比第二优先级和第三优先级对应的执行时间信息长;第三优先级对应的执行时间信息比第二优先级对应的执行时间信息短。

本说明书实施例中,可以根据多个慢查询语句对应的告警优先级,从多个慢查询语句中筛选出与预设告警优先级信息匹配的待告警查询语句;并可以对待告警查询语句进行告警处理。例如,当预设告警优先级信息包括第一优先级和第二优先级时,可以将优先级为第一优先级和第二优先级的慢查询语句作为待告警查询语句。

可选地,可以对预设告警优先级信息进行更新,例如,可以通过接收用户的更新请求进行更新,实现用户对预设告警优先级信息的设置和更新。

通过获取预设告警优先级信息,可以实现对预设告警优先级信息的灵活设置;以及根据多个慢查询语句对应的优先级,从多个慢查询语句中筛选出与预设告警优先级信息匹配的待告警查询语句,可以根据预设告警优先级信息筛选待告警查询语句,避免告警并发数量过多,降低数据处理压力以及保证待告警查询语句能够被及时有效地处理。

图4是根据一示例性实施例示出的慢查询处理方法的流程图。在一种可能的实现方式中,如图4所示,在步骤S207之前,该慢查询处理方法还可以包括:

在步骤S401中,获取多个慢查询语句对应的执行次数信息;

相应地,步骤S207可以包括:

在步骤S403中,根据多个慢查询语句对应的执行时间信息和执行次数信息,确定多个慢查询语句对应的告警优先级。

本说明书实施例中,可以获取多个慢查询语句的执行时间信息与执行次数信息的目标加权和。从而可以根据该目标加权和,对多个慢查询语句进行排序,根据该排序,可以将多个慢查询语句划分至预设数量的告警优先级中。例如,可以根据该排序,将多个慢查询语句等分为查询语句子集合,确定查询语句子集合对应的告警优先级,从而可以将每个查询语句子集合对应的告警优先级作为每个查询语句子集合中的慢查询语句对应的告警优先级,本公开对此不作限定。

通过在告警优先级的确定中引入执行次数信息,可以使得执行次数较高的慢查询语句对应的告警优先级更高,即可以实现对执行频次较高的慢查询语句进行较高优先级的告警处理,可以保证执行频次较高的慢查询语句得到及时处理,提高数据库的服务性能。

图5是根据一示例性实施例示出的根据多个慢查询语句对应的执行时间信息和执行次数信息,确定多个慢查询语句对应的告警优先级的方法流程图。在一种可能的实现方式中,如图5所示,该步骤S403可以包括:

在步骤S501中,获取预设排序参考信息,该预设排序参考信息可以包括基线排序信息。

本说明书实施例中,预设排序参考信息可以是指能够表征查询语句运行性能的数值范围信息,例如,百分制数值范围、0-150数值范围、0-1数值范围、0-无穷数值范围,本公开对此不作限定。基线排序信息可以是指相应预设排序参考信息中的表征合格的排序信息,比如,百分制数值范围中,基线排序信息可以是指60分。需要说明的是,基线排序信息也可以是预先设置的,比如设置60分为预设排序参考信息的基线排序信息,在此情况下,各数值范围对应的基线排序信息可以均为60分。本公开对此不作限定。

在步骤S503中,根据多个慢查询语句对应的执行时间信息,确定目标基线时间信息。

本说明书实施例中,可以根据多个慢查询语句对应的执行时间信息,确定目标基线时间信息。在一个示例中,可以将多个慢查询语句对应的执行时间信息的均值作为目标基线时间信息。在另一个示例中,可以确定多个慢查询语句对应的执行时间信息的均值和标准差,从而可以根据该均值和标准差,确定目标基线时间信息,例如,可以将均值与标准差的和作为目标基线时间信息。本公开对此不作限定。

在步骤S505中,根据多个慢查询语句对应的执行次数信息,确定目标基线次数信息。

本说明书实施例中,可以根据多个慢查询语句对应的执行次数信息,确定目标基线次数信息。在一个示例中,可以将多个慢查询语句对应的执行次数信息的均值作为目标基线次数信息。在另一个示例中,可以确定多个慢查询语句对应的执行次数信息的均值和标准差,从而可以根据该均值和标准差,确定目标基线次数信息,例如,可以将均值与标准差的和作为目标基线次数信息。本公开对此不作限定。

在步骤S507中,基于基线排序信息和目标基线时间信息,将每个慢查询语句对应的执行时间信息映射到预设排序参考信息中对应的时间排序信息。

本说明书实施例中,可以基于基线排序信息和目标基线时间信息,得到该预设排序参考信息的时间排序斜率信息,例如,可以将基线排序信息与目标基线时间信息的商作为时间排序斜率信息,从而可以基于该时间排序斜率信息和每个慢查询语句对应的执行时间信息,得到每个慢查询语句在预设排序参考信息中对应的时间排序信息。其中,时间排序信息可以表征慢查询语句的执行时间的时长信息,执行时间越长,慢查询语句的运行性能越差,时间排序信息越高。

在一个示例中,可以根据以下公式(1),得到每个慢查询语句在预设排序参考信息中对应的时间排序信息。

其中,t可以为每个慢查询语句对应的执行时间信息;Y

需要说明的是,该示例中,预设排序参考信息没有设置限值。

在另一个示例中,可以根据以下公式(2)确定目标上限时间信息和目标下限时间信息。

例如,Y

该示例中,预设排序参考信息设置了限值:Y

在步骤S509中,基于基线排序信息和目标基线次数信息,将每个慢查询语句对应的执行次数信息映射到预设排序参考信息中对应的次数排序信息。

本说明书实施例中,可以参见步骤S503,在此不再赘述。其中,次数排序信息可以表征慢查询语句的执行次数对查询语句运行性能的影响程度信息,执行次数越多,慢查询语句对运行性能的影响程度越高,相应地次数排序信息越高。

在一个示例中,可以根据以下公式(2),得到每个慢查询语句在预设排序参考信息中对应的次数排序信息。

其中,c可以为每个慢查询语句对应的次数时间信息;Y

在另一个示例中,当预设排序参考信息设置限值时,可以参见上述公式(2)和(3),将每个慢查询语句对应的执行次数信息映射到预设排序参考信息中对应的次数排序信息。在此不再赘述。

在步骤S5011中,根据时间排序信息和次数排序信息,确定多个慢查询语句的排序结果。

本说明书实施例中,可以将每个慢查询语句的时间排序信息与次数排序信息的和作为慢查询语句的排序分值信息;并可以根据该排序分值信息,将多个慢查询语句进行排序,得到慢查询语句的排序顺序信息。从而可以将排序分值信息和排序顺序信息作为排序结果。

在步骤S5013中,根据排序结果,确定多个慢查询语句对应的告警优先级。

本说明书实施例中,可以根据排序结果,确定多个慢查询语句对应的告警优先级。在一个示例中,可以基于排序结果中的排序顺序信息,将多个慢查询语句划分为查询语句子集,可以为每个查询语句子集设置告警优先级。或者,可以基于排序结果中的排序分值信息与分值范围阈值信息,确定多个慢查询语句对应的告警优先级。其中,分值范围阈值信息可以包括至少两个分值范围阈值,每个分值范围阈值可以对应一个告警优先级。本公开对此不作限定。

可选地,可以将排序结果发送至终端,以显示该排序结果。进一步地,可以由用户根据该排序结果设置多个慢查询语句对应的告警优先级,并可以将该设置的多个慢查询语句对应的告警优先级发送至服务器,服务器可以基于该告警优先级触发告警处理。

通过将执行时间信息和执行次数信息映射到统一的预设排序参考信息中,得到统一的时间排序信息和次数排序信息,使得根据该统一的时间排序信息和次数排序信息确定排序结果以及确定告警优先级,提高了排序结果和告警优先级的合理性和准确性。

图6是根据一示例性实施例示出的根据多个慢查询查询语句对应的执行时间信息和执行次数信息,确定多个慢查询查询语句对应的告警优先级的方法流程图。在一种可能的实现方式中,如图6所示,慢查询处理方法还可以包括:

在步骤S601中,接收终端的优先级配置请求,该优先级配置请求中包括预设数量的告警优先级以及每个告警优先级对应的查询语句数量占比信息;

在步骤S603中,将预设数量的告警优先级以及每个告警优先级对应的查询语句数量占比信息作为预设优先级信息。

本说明书实施例中,可以接收终端发送的优先级配置请求,该优先级配置请求可以用户触发的。例如,用户可以在终端上设置告警优先级信息以触发终端发送优先级配置请求。可以从优先级配置请求中提取预设数量的告警优先级以及每个优先级对应的查询语句数量占比信息;并可以将预设数量的优先级以及每个优先级对应的查询语句数量占比信息作为预设优先级信息,以用于确定多个慢查询语句对应的告警优先级。

相应地,步骤S5013可以包括:

在步骤S605中,根据预设优先级信息和排序结果,确定多个慢查询语句对应的告警优先级。

本说明书实施例中,可以根据预设优先级信息和排序结果,确定多个慢查询语句对应的告警优先级,本公开对此不作限定,可以将多个慢查询语句划分为预设数量的查询语句子集,只要查询语句子集中慢查询语句占多个慢查询语句的总数量的比例与告警优先级对应的查询语句数量占比信息一致即可。

通过接收终端的优先级配置请求以确定预设优先级信息,可以实现用户对告警优先级的设置,提高用户参与度,并可以使得用户根据实际需求设置预设优先级信息以适应告警优先级的动态调整,提高慢查询处理的有效性。

图7是根据一示例性实施例示出的根据预设优先级信息和排序结果,确定多个慢查询语句对应的告警优先级的方法流程图。如图7所示,在一种可能的实现方式中,当预设优先级信息包括预设数量的告警优先级以及每个告警优先级对应的查询语句数量占比信息时,该步骤S605可以包括:

在步骤S701中,根据排序结果和每个告警优先级对应的查询语句数量占比信息,将多个慢查询语句划分为预设数量的慢查询集合。

本说明书实施例中,可以根据每个告警优先级对应的查询语句数量占比信息,依次按照排序结果中的排序顺序信息,从多个慢查询语句中提取与查询语句数量占比信息匹配的慢查询语句作为与每个告警优先级对应的慢查询语句,从而将多个慢查询语句划分为预设数量的慢查询集合。该慢查询集合与告警优先级对应。例如,预设告警优先级可以包括3个告警优先级,每个告警优先级对应的查询语句数量占比信息分别为30%、40%、30%。若慢查询语句为100个,可以按照该100个慢查询语句的排序结果,依次提取30%、40%、30%对应的慢查询语句,从而将该100个慢查询语句划分为3个慢查询集合,该3个慢查询集合对应该3个告警优先级。

在步骤S703中,将每个慢查询集合对应的告警优先级作为每个慢查询集合中慢查询语句的告警优先级。

本说明书实施例中,可以将每个慢查询集合对应的告警优先级作为每个慢查询集合中慢查询语句的告警优先级。

通过设置预设数量的告警优先级以及每个告警优先级对应的查询语句数量占比信息,可以灵活划分多个慢查询语句的优先级,进而可以提高告警处理的灵活性。

图8是根据一示例性实施例示出的根据预设优先级信息和排序结果,确定多个慢查询语句对应的告警优先级的方法流程图。如图8所示,在一种可能的实现方式中,该步骤S605可以包括:

在步骤S801中,根据排序结果和基线排序信息,将多个慢查询语句划分为两个等级。

本说明书实施例中,可以将排序结果的排序分值信息大于基线排序信息的慢查询语句划分至第一等级;将排序结果的排序分值信息小于或等于基线排序信息的慢查询语句划分至第二等级。即可以基于基线排序信息,对多个慢查询语句进行两个等级的划分。

在步骤S803中,确定两个等级中慢查询语句的数量与多个慢查询语句的总数量的目标占比信息。

本说明书实施例中,可以确定两个等级中慢查询语句的数量与多个慢查询语句的总数量的目标占比信息。例如,多个慢查询语句为100个,第一等级中的慢查询语句为40个,第二等级中的慢查询语句为60个,可以确定第一等级中慢查询语句的数量与多个慢查询语句的总数量的目标占比信息为40%;可以确定第二等级中慢查询语句的数量与多个慢查询语句的总数量的目标占比信息为60%。

在步骤S805中,若目标占比信息与查询语句数量占比信息不匹配,获取每个等级中的慢查询语句的目标排序结果。

本说明书实施例中,目标占比信息与查询语句数量占比信息不匹配可以是指目标占比信息单独以及合并的结果与查询语句数量占比信息不同。例如,目标占比信息包括40%、60%;查询语句数量占比信息包括30%、30%和40%,单独的目标占比信息(40%、60%)与30%、30%和40%不同;目标占比信息合并的结果40%+60%=100%与30%、30%和40%也不同,可以认为目标占比信息与查询语句数量占比信息不匹配。在这种情况下,可以获取每个等级中每个慢查询语句对应的目标排序结果。具体可以参见步骤S501~S507,在此不再赘述。

在步骤S807中,根据每个等级中的慢查询语句的目标排序结果和基线排序信息,将每个等级中的慢查询语句划分为两个等级。

本说明书实施例中,可以根据每个等级中的慢查询语句的目标排序结果和基线排序信息,继续对每个等级进行两个等级的划分,将每个等级中的慢查询语句划分为两个等级,直至划分的等级中的目标占比信息满足数量占比信息为止。

在步骤S809中,若目标占比信息与查询语句数量占比信息匹配,确定每个等级对应的告警优先级;

在步骤S8011中,将每个等级对应的告警优先级确定为每个等级中的慢查询语句的告警优先级。

本说明书实施例中,目标占比信息与查询语句数量占比信息匹配可以是指目标占比信息单独或合并的结果与查询语句数量占比信息相同。例如,划分两次等级后的每个等级的目标占比信息包括30%、10%、20%、40%;查询语句数量占比信息包括30%、30%和40%,目标占比信息合并的结果30%、10%+20%=30%、40%与30%、30%和40%相同,可以认为目标占比信息与查询语句数量占比信息匹配。

在目标占比信息与查询语句数量占比信息匹配时,可以确定每个等级对应的告警优先级,例如,可以根据目标占比信息的合并的结果,确定每个等级对应的告警优先级。以上述划分两次等级后的四个等级的目标占比信息包括:第一等级30%、第二等级10%、第三等级20%、第四等级40%为例,每个告警优先级对应的查询语句数量占比信息可以包括:第一告警优先级30%、第二告警优先级30%和第三告警优先级40%;目标占比信息合并的结果为30%、10%+20%=30%、40%,该合并的结果与查询语句数量占比信息匹配。从而可以确定第一等级对应第一告警优先级、第二等级和第三等级对应第二告警优先级、第四等级对应第三告警优先级。从而可以将每个等级对应的告警优先级确定为每个等级中的慢查询语句的告警优先级。

通过对多个慢查询语句进行两个等级的分支划分,可以提高告警优先级的准确性。

图9是根据一示例性实施例示出的一种慢查询处理装置框图。参照图9,该装置可以包括:

执行时间信息获取模块901,被配置为执行获取查询语句集合中每个查询语句的执行时间信息;

基线时间信息确定模块903,被配置为执行根据每个查询语句的执行时间信息,确定基线时间信息;

慢查询筛选模块905,被配置为执行根据基线时间信息,从查询语句集合中筛选出慢查询语句集合,慢查询语句集合包括多个慢查询语句;

告警优先级确定模块907,被配置为执行根据多个慢查询语句对应的执行时间信息,确定多个慢查询语句对应的告警优先级;

慢查询处理模块909,被配置为执行根据多个慢查询语句对应的告警优先级,对多个慢查询语句进行告警处理。

根据每个查询语句的执行时间信息,确定基线时间信息;并根据基线时间信息,从查询语句集合中筛选出慢查询语句集合,根据多个慢查询语句对应的执行时间信息,确定多个慢查询语句对应的告警优先级,根据多个慢查询语句对应的告警优先级,对多个慢查询语句进行告警处理,使得用于筛选慢查询语句的基线时间信息是动态确定的,能够适用各业务线或各场景的需求,并且可以根据告警优先级进行针对性的告警,避免告警并发数量过多,减轻数据处理压力,进而可以有效处理优先级高的慢查询语句,使得慢查询处理可以更加及时和有效,可以提高数据库的服务性能。

在一种可能的实现方式中,慢查询处理装置还可以包括:

执行次数信息获取模块,被配置为执行获取多个慢查询语句对应的执行次数信息;

告警优先级确定模块907可以包括:

告警优先级确定单元,被配置为执行根据多个慢查询语句对应的执行时间信息和执行次数信息,确定多个慢查询语句对应的告警优先级。

在一种可能的实现方式中,告警优先级确定单元可以包括:

预设排序参考信息获取子单元,被配置为执行获取预设排序参考信息,预设排序参考信息包括基线排序信息;

目标基线时间信息确定子单元,被配置为执行根据多个慢查询语句对应的执行时间信息,确定目标基线时间信息;

目标基线次数信息确定子单元,被配置为执行根据多个慢查询语句对应的执行次数信息,确定目标基线次数信息;

时间排序信息子映射子单元,被配置为执行基于基线排序信息和目标基线时间信息,将每个慢查询语句对应的执行时间信息映射到预设排序参考信息中对应的时间排序信息;

次数排序信息映射子单元,被配置为执行基于基线排序信息和目标基线次数信息,将每个慢查询语句对应的执行次数信息映射到预设排序参考信息中对应的次数排序信息;

排序结果确定子单元,被配置为执行根据时间排序信息和次数排序信息,确定多个慢查询语句的排序结果;

告警优先级确定子单元,被配置为执行根据排序结果,确定多个慢查询语句对应的告警优先级。

在一种可能的实现方式中,慢查询处理装置还可以包括:

优先级配置请求接收模块,被配置为执行接收终端的优先级配置请求,优先级配置请求中包括预设数量的告警优先级以及每个告警优先级对应的查询语句数量占比信息;

预设优先级信息获取模块,被配置为执行将预设数量的告警优先级以及每个告警优先级对应的查询语句数量占比信息作为预设优先级信息。

告警优先级确定子单元可以包括:

第一告警优先级确定子单元,被配置为执行根据预设优先级信息和排序结果,确定多个慢查询语句对应的告警优先级。

在一种可能的实现方式中,第一告警优先级确定子单元可以包括:

慢查询集合划分子单元,被配置为执行根据排序结果和每个告警优先级对应的查询语句数量占比信息,将多个慢查询语句划分为预设数量的慢查询集合;

第二告警优先级确定子单元,被配置为执行将每个慢查询集合对应的告警优先级作为每个慢查询集合中慢查询语句的告警优先级。

在一种可能的实现方式中,第一告警优先级确定子单元可以包括:

第一等级划分子单元,被配置为执行根据排序结果和基线排序信息,将多个慢查询语句划分为两个等级;

目标占比信息确定子单元,被配置为执行确定两个等级中慢查询语句的数量与多个慢查询语句的总数量的目标占比信息;

目标排序结果确定子单元,被配置为执行若目标占比信息与查询语句数量占比信息不匹配,获取每个等级中的慢查询语句的目标排序结果;

第二等级划分子单元,被配置为执行根据每个等级中的慢查询语句的目标排序结果和基线排序信息,将每个等级中的慢查询语句划分为两个等级;

等级对应的优先级确定子单元,被配置为执行若目标占比信息与查询语句数量占比信息匹配,确定每个等级对应的告警优先级;

第三告警优先级确定子单元,被配置为将每个等级对应的告警优先级确定为每个等级中的慢查询语句的告警优先级。

在一种可能的实现方式中,慢查询处理装置还可以包括:

预设告警优先级信息获取模块,被配置为执行获取预设告警优先级信息;

慢查询处理模块包括:

待告警查询语句筛选单元,被配置为执行根据多个慢查询语句对应的告警优先级,从多个慢查询语句中筛选出与预设告警优先级信息匹配的待告警查询语句;

慢查询处理单元,被配置为执行对待告警查询语句进行告警处理。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图10是根据一示例性实施例示出的一种用于慢查询处理的电子设备的框图,该电子设备可以是服务器,其内部结构图可以如图10所示。该电子设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种慢查询处理方法。

本领域技术人员可以理解,图10中示出的结构,仅仅是与本公开方案相关的部分结构的框图,并不构成对本公开方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在示例性实施例中,还提供了一种电子设备,包括:处理器;用于存储该处理器可执行指令的存储器;其中,该处理器被配置为执行该指令,以实现如本公开实施例中的慢查询处理方法。

在示例性实施例中,还提供了一种存储介质,当该存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行本公开实施例中的慢查询处理方法。

在示例性实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本公开实施例中的慢查询处理的方法。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

相关技术
  • 慢查询处理方法、装置、电子设备及存储介质
  • 慢查询日志处理方法、装置及电子设备
技术分类

06120112793062