CN117076482A - 数据库慢查询语句分析方法及装置 - Google Patents

数据库慢查询语句分析方法及装置 Download PDF

Info

Publication number
CN117076482A
CN117076482A CN202311092066.3A CN202311092066A CN117076482A CN 117076482 A CN117076482 A CN 117076482A CN 202311092066 A CN202311092066 A CN 202311092066A CN 117076482 A CN117076482 A CN 117076482A
Authority
CN
China
Prior art keywords
slow query
query statement
slow
information
statement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311092066.3A
Other languages
English (en)
Inventor
李正磊
陈存利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Du Xiaoman Technology Beijing Co Ltd
Original Assignee
Du Xiaoman Technology Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Du Xiaoman Technology Beijing Co Ltd filed Critical Du Xiaoman Technology Beijing Co Ltd
Priority to CN202311092066.3A priority Critical patent/CN117076482A/zh
Publication of CN117076482A publication Critical patent/CN117076482A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供一种数据库慢查询语句分析方法及装置。所述方法包括:获取待分析的慢查询语句,所述慢查询语句为结构化查询语句;获取所述慢查询语句的执行特征信息;基于所述执行特征信息计算所述慢查询语句的分数;根据所述慢查询语句的分数判断是否存在故障风险。本公开的方案能够在故障发生之前发现存在导致慢查询故障的风险的慢查询语句,保障线上服务的稳定性。

Description

数据库慢查询语句分析方法及装置
技术领域
本发明涉及数据库技术领域,尤其涉及一种数据库慢查询语句分析方法及装置。
背景技术
在数据库技术中,响应时间超过阀值的查询语句被称为慢查询语句。服务在运行时,会有各种各样的数据在数据库中进行存储供后续查询,而慢查询语句的出现可能导致数据库出现慢查询故障,从而将线上其他的查询给拖垮,严重破坏了服务的稳定性。当前,数据库出现慢查询故障时,常规的处理手段是终止(kill)慢查询语句或者限流慢查询语句,然而此时已经对线上服务造成了不可逆的影响,而且当慢查询故障频繁出现时,上述处理手段也无法保证线上服务的稳定性。
发明内容
本公开的目的是提供一种数据库慢查询语句分析方法及装置,以在慢查询故障出现之前发现存在故障风险的慢查询语句。
为解决上述技术问题,根据本公开的第一方面,提供了一种数据库慢查询语句分析方法,包括:
获取待分析的慢查询语句,所述慢查询语句为结构化查询语句;
获取所述慢查询语句的执行特征信息;
基于所述执行特征信息计算所述慢查询语句的分数;
根据所述慢查询语句的分数判断是否存在故障风险。
根据本公开的第二方面,提供了一种数据库慢查询语句分析装置,包括:
语句获取模块,用于获取待分析的慢查询语句,所述慢查询语句为结构化查询语句;
特征获取模块,用于获取所述慢查询语句的执行特征信息;
计分模块,用于基于所述执行特征信息计算所述慢查询语句的分数;
判断模块,用于根据所述慢查询语句的分数判断是否存在故障风险。
根据本公开的第三方面,提供了一种电子设备,包括:
处理器;以及
存储程序的存储器,
其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据第一方面所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据第一方面所述的方法。
本申请实施例中提供的一个或多个技术方案,通过获取待分析的慢查询语句,获取所述慢查询语句的执行特征信息,基于所述执行特征信息计算所述慢查询语句的分数,根据所述慢查询语句的分数判断是否存在故障风险,能够在故障发生之前分析出当前哪些慢查询语句存在导致慢查询故障的风险,从而可以对这些慢查询语句进行优化整改,提前消除风险,保障线上服务的稳定性。
附图说明
在下面结合附图对于示例性实施例的描述中,本公开的更多细节、特征和优点被公开,在附图中:
图1示出了根据本公开示例性实施例的可以在其中实施本文描述的各种方法的应用场景的示意图;
图2示出了根据本公开示例性实施例的数据库慢查询语句分析方法的流程图;
图3示出了根据本公开示例性实施例的执行数据库慢查询语句分析方法的组件架构示意图;
图4示出了根据本公开示例性实施例的计算慢查询语句的分数的示意图;
图5示出了根据本公开示例性实施例的数据库慢查询语句分析装置的示意性框图;
图6示出了能够用于实现本公开的实施例的示例性电子设备的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
以下参照附图描述本公开的方案。
图1为根据本公开示例性实施例的可以在其中实施本文描述的各种方法的应用场景的示意图。如图1所示,场景包括终端设备101、102、103,网络104和服务器105。终端设备101、102、103可以是各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等。网络104用以在终端设备101、102、103和服务器105之间提供通信链路。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。服务器105可以是提供各种服务的服务器。用户可以使用终端设备101、102、103通过网络104与服务器105交互,以获得由服务器105提供的服务。服务器105在运行服务的过程中,有各种各样的数据需要存储到数据库中,并在后续使用查询语句查询所存储的数据。作为一个示例,服务器105中所使用的数据库为MySQL,使用的查询语句为SQL((Structured Query Language))语句。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
需要说明的是,本申请实施例所提供的数据库慢查询语句分析方法由服务器执行,相应地,数据库慢查询语句分析装置设置于服务器中。
图2为根据本公开示例性实施例的数据库慢查询语句分析方法的流程图。该方法包括以下步骤:
S201、获取待分析的慢查询语句,所述慢查询语句为结构化查询语句;
可选地,所述数据库为MySQL,所述结构化查询语句为SQL(Structured QueryLanguage)查询语句。
具体地,该步骤包括:
获取数据库的集群实例信息,从所述集群实例中选择线上实例;
采集线上实例的慢查询语句;
对所述线上实例的慢查询语句进行筛选得到待分析的慢查询语句。
因为一个集群实例并不是都接入线上流量的,有些实例是用于备份或者离线查询等,这些实例上的慢查询语句并不会影响线上服务,因此在采集慢查询语句时,先将集群中非线上的实例进行剔除,从而减少无用的信息,提高分析效率。
在所采集的线上实例的慢查询语句中,也存在重复的和一些不需要的慢查询语句,所以为了进一步提高分析效率,对所采集的线上实例的慢查询语句再进行筛选,例如排除管理用户的慢查询语句,对慢查询语句进行汇总处理,同一类的慢查询语句只记录一次,但是会统计同类型的慢查询语句的出现频率、耗时等信息。
S202、获取所述慢查询语句的执行特征信息;
具体地,包括获取同类型的所述慢查询语句的出现频率信息,和/或在空闲实例上执行所述慢查询语句,获取执行性能和计划信息,可选地,包括所述慢查询语句是否走索引、是否包含特定子句(group by、order by等)、查询的表大小信息、查询遍历的数据行数和大小信息、查询得到数据的行数和行长信息中的一种或多种。
S203、基于所述执行特征信息计算所述慢查询语句的分数;
待分析的慢查询语句虽然对线上服务无影响,但是一旦慢查询语句数量变得庞大就会导致线上服务雪崩,因此,需要结合多种执行特征信息从这些慢查询语句中找寻出哪些可能导致慢查询故障。可选地,包括以下计算方式中的一种或多种:
判断所述慢查询语句是否走索引,若是,则根据查询遍历的数据行数和大小信息计算所述慢查询语句的分数,若否,则根据查询的表大小信息计算所述慢查询语句的分数;
根据所述慢查询语句是否包含特定子句,以及在包含特定子句时,根据查询得到数据的行数和行长信息计算所述慢查询语句的分数;
根据所述慢查询语句的出现频率信息计算所述慢查询语句的分数。
其中,分数和查询遍历的数据行数和大小、查询的表大小、查询得到数据的行数和行长、慢查询语句的出现频率等成正相关或负相关的关系。
可选地,所述计算所述慢查询语句的分数的方式包括以所述执行特征信息为参数,按照预设函数计算分数,或者在起始分数的基础上,按照预设的打分规则减分或加分的方式计算分数。
可选地,所述打分规则包括一条或多条规则,如:
慢查询语句走索引时,基于查询遍历的数据行数和大小信息不同对应地增加或减少不同分数;
慢查询语句不走索引时,基于查询的表大小信息不同,对应地增加或减少不同分数;
基于慢查询语句是否包含特定子句,对应地增加或减少不同的分数;
在包含特定子句时,基于查询得到数据的行数和行长信息不同,对应地增加或减少不同的分数;
基于所述慢查询语句的出现频率不同,对应地增加或减少不同的分数。
S204、根据所述慢查询语句的分数判断是否存在故障风险。
可选地,若所述慢查询语句的分数达到预设条件,则所述慢查询语句存在故障风险,否则不存在故障风险。当所述计算所述慢查询语句的分数的方式为减分方式时,分数越低则故障风险越大,所述预设条件为低于预设阈值,当所述计算所述慢查询语句的分数的方式为加分方式时,分数越高则故障风险越大,所述预设条件为高于预设阈值。
对于存在故障风险的慢查询语句,需要进行处理以消除风险,例如向该慢查询语句对应的用户发出整改提醒和整改建议。
可选地,当所述计算所述慢查询语句的分数的方式为减分方式时,设有较高的第一预设阈值和较低的第二预设阈值,以区分风险等级,若所述慢查询语句的分数低于第二预设阈值,则所述慢查询语句存在高优先级风险,需立即处理,若所述慢查询语句的分数等于或高于第二预设阈值但低于第一预设阈值,则所述慢查询语句存在低优先级风险,可在高优先级风险处理完毕后或在一定时间内处理。
可选地,在步骤S201中,还获取线上实例的用户连接数信息,在步骤S203中,基于所述执行特征信息和用户连接数信息计算所述慢查询语句的分数。
通过上述步骤,能够在故障发生前定位存在风险的慢查询语句并整改,消除线上服务的风险。但线上仍有可能出现慢查询故障,会导致整个数据库实例变慢,进而出现大量的慢查询语句,导致真正引发实例变慢的慢查询语句隐藏在其中,通过人工去定位则需要花费大量时间去进行验证。为此,本实施例的方法进一步实现了自动识别根源的慢查询语句,具体包括:当数据库发生慢查询故障时,根据故障类型、慢查询语句对应的故障类型、慢查询语句在故障期间的执行次数、慢查询语句异常信息和用户连接数异常波动信息中的一种或多种定位引发所述慢查询故障的慢查询语句。通过上述多维度分析取交集的方式,可以快速缩小范围,方便定位。在定位到引发故障的慢查询语句后,便可以通过限流、终止(kill)、加索引、扩充资源等多种方式来解决故障。
本公开上述实施例中提供的方法基于多维度的特征信息对采集的慢查询语句进行打分分析,能够在故障发生前发现存在风险的慢查询语句,从而提前整改以消除线上服务的风险;还能够在线上故障发生后,从大量慢查询语句中自动识别引发故障的慢查询语句,从而快速定位和解决故障,降低对服务的影响。
图3为根据本公开示例性实施例的执行数据库慢查询语句分析方法的组件架构示意图。该组件架构基于MySQL实现,其中包括作为agent端的collect-agent组件301和作为Sever端的mysql-export组件302。
其中,mysql-export组件302负责发起慢查询采集任务和用户连接数采集任务,将采集到的数据写入Server端的数据库持久化存储,以及对采集上来的SQL查询语句进行分析,结合用户连接数情况以及SQL查询语句执行性能等特征,从而得出其中哪些SQL查询语句可能会导致线上出现慢查风险。mysql-export组件302还可以用于:提供管理前端API接口,管理端通过该接口可以查询指定集群的用户连接数趋势、慢查询信息,并可以获取存在慢查询故障风险的SQL查询语句以及优化建议;提供慢查周报,定时将每个团队的慢查询信息进行汇总,通过邮件的方式发送到指定。邮箱,由各团队对慢查询信息进行标注处理;慢查询采集任务调度和用户连接数采集任务调度,作为Sever端统一管理所有集群的慢查询语句采集任务和用户连接数采集任务,例如采集频率、采集策略等。
collect-agent组件301负责执行mysql-exporter发起的任务,将任务执行状态及结果返回给mysql-exporter,包括接收慢查询采集任务,读取MySQL实例的慢查询文件,获取慢查询语句信息并返回给Sever端,并对慢查信息通过pt工具进行分析,生成易于查看的慢查询信息,接收用户连接数采集任务,获取当前MySQL实例的用户连接数信息并返回给Server端。
作为一个示例,基于上述组件架构执行数据库慢查询语句分析方法具体如下:
首先,由Server端获取集群实例信息。一个集群实例并不是都接入线上流量的,有些实例是用于备份或者离线查询等,而这些实例上因为负载常态就很高所以会有很多的慢查询语句,但是这些慢查询语句并不会影响线上,因此Server端先将集群实例中非线上的实例进行剔除,根据线上实例生成慢查询采集任务和用户连接数采集任务,发送给agent端,由agent端进行慢查询信息采集和用户连接数采集。
agent端将采集的数据直接上报,Server端会收到大量带有重复信息的数据和一些不需要的数据,所以对于上报的慢查询语句,Server端会进行筛选操作,排除管理用户的SQL查询语句,以及对筛选后的慢查询语句进行汇总处理,同一类型的慢查询语句只保留一个查询语句的信息,但是会记录该类慢查询语句的出现频率以及耗时等信息,供后续分析步骤使用。
Sever端执行的分析步骤包括两部分,一种是事前发现具有慢查询故障风险的慢查询语句的能力,一种是事中快速定位导致慢查询故障的慢查询语句,即根源慢查询语句的能力。当慢查询故障发生时,线上服务就已经开始受影响,虽然可以采取手段快速止损,但是受到的影响是不可逆的,因此如何在事前就能发现引发慢查询故障的SQL语句就尤为重要。通过上文中的慢查询采集任务,可以拿到当前集群的一些慢查询语句信息,虽然零星的慢查询语句对线上服务无影响,但是一旦慢查询语句数量变得庞大就会导致线上服务雪崩,但是平时出现的零星的慢查询语句多种多样,需要结合多种特征信息在这些慢查询语句中找寻出哪些是可能导致线上慢查询故障的慢查询语句,具体处理包括:
在空闲实例上执行筛选后的慢查询语句,获取其执行性能和计划信息,包括所述慢查询语句是否走索引、是否包含特定子句、查询的表大小信息、查询遍历的数据行数和大小信息、查询得到数据的行数和行长信息等。
根据所述执行性能和计划信息、出现频率信息,按照预设的打分规则为慢查询语句进行打分。所述预设的打分规则可以包括涉及不同方向的多条规则,采取减分方式或加分方式计算。参照图4所示,以减分方式为例,初始分数为100分,打分规则包括:
所述慢查询语句走索引,根据查询遍历的数据行数和大小信息计算所述慢查询语句的分数,包括:
若查询遍历的数据行数<10行,且遍历数据大小<1M,则不减分;
若10行≦查询遍历的数据行数<20000行,且1M≦遍历数据大小<5M,则减5分;
若20000行≦查询遍历的数据行数<50000行,且5M≦遍历数据大小<10M,则减10分;
若查询遍历的数据行数≧50000行,且遍历数据大小≧10M,则减50分。
所述慢查询语句不走索引,根据查询的表大小信息计算所述慢查询语句的分数,包括;
若表大小<1M,则减5分;
若1M≦表大小<10M,则减10分;
若表大小≧10M,则减50分。
若所述慢查询语句不包含group by、order by等特定子句,则不减分;
所述慢查询语句包含特定子句,根据查询得到数据的行数和行长信息计算所述慢查询语句的分数,包括:
查询得到数据的行数<10行,且1行的数据量≦10k,则不减分;
若10行≦查询得到数据的行数<300行,且10k<1行的数据量≦20k,则减5分;
若300行≦查询得到数据的行数<1000行,且10k<1行的数据量≦20k,则减15分;
1000行≦查询得到数据的行数<10000行,且10k<1行的数据量≦20k,则减25分;
查询得到数据的行数≧10000行,或1行的数据量>20k,则减50分;
根据所述慢查询语句的出现频率信息计算所述慢查询语句的分数,包括:
若出现频率<2次/分钟,则不减分;
若2次/分钟≦出现频率<5次/分钟,则减1分;
若5次/分钟≦出现频率<20次/分钟,且不具有上升趋势,则减5分;
若5次/分钟≦出现频率<20次/分钟,且具有上升趋势,则减10分;
若20次/分钟≦出现频率<60次/分钟,且不具有上升趋势,则减15分;
若20次/分钟≦出现频率<60次/分钟,且具有上升趋势,则减30分;
若出现频率≧60次/分钟,则减40分。
通过上述一个或多个规则对SQL慢查询语句进行打分后,若分数低于95分,则说明这个SQL语句是存在风险的,需要进行修改,可自动提醒对应的用户进行整改,并且给出整改建议。当分数低于60分时,则认为该SQL语句存在较大风险,处理优先级较高,需要立即处理,对于高于60分但是低于95分的,则处理优先级较低,可以延后处理。通过此种方法可以在事前定位存在风险的慢查SQL并整改,消除线上的风险。
但在线上,一旦发生慢查询故障,会导致整个数据库实例变慢,会出现大量的慢查询SQL语句,真正引发慢查询故障的SQL查询语句就隐藏在其中,通过人工去定位则需要花费大量时间去进行验证。考虑发生故障时,慢查询SQL语句会消耗实例大量资源,所以通过判断资源消耗的类型,结合异常信息、执行次数等信息,可以自动识别引发故障的根源慢查询语句。具体地,处理过程包括:
判断故障类型,例如是CPU消耗型还是I/O消耗型;
对当前所有的慢查询语句进行分类,通过在空闲实例上执行慢查询语句,将其分为CPU消耗型和I/O消耗型,得到与所述故障类型匹配的慢查询语句;
将故障前的实例快照和故障时的实例快照进行比较,识别存在异常的慢查询语句和用户连接数;
统计慢查询语句在故障期间的执行次数,获取执行次数较高的慢查询语句;
根据上述处理的结果取交集,便可以定位到引发故障的根源慢查询SQL语句,然后可通过限流、kill、加索引、扩充资源等多种方式来解决故障。
图5为根据本公开示例性实施例的数据库慢查询语句分析装置的示意性框图。数据库慢查询语句分析装置500包括语句获取模块501、特征获取模块502、计分模块503和判断模块504,其中:
语句获取模块501,用于获取待分析的慢查询语句,所述慢查询语句为结构化查询语句;
特征获取模块502,用于获取所述慢查询语句的执行特征信息;
计分模块503,用于基于所述执行特征信息计算所述慢查询语句的分数;
判断模块504,用于根据所述慢查询语句的分数判断是否存在故障风险。
可选地,所述结构化查询语句为SQL查询语句。
可选地,所述语句获取模块501具体用于获取数据库的集群实例信息,从所述集群实例中选择线上实例;采集线上实例的慢查询语句;对所述线上实例的慢查询语句进行筛选得到待分析的慢查询语句。由此,在采集慢查询语句时,先将集群中非线上的实例进行剔除,从而减少无用的信息,提高分析效率,并对所采集的线上实例的慢查询语句再进行筛选以进一步提高分析效率。
可选地,所述特征获取模块502用于获取同类型的所述慢查询语句的出现频率信息,和/或在空闲实例上执行所述慢查询语句,获取执行性能和计划信息,可选地,包括所述慢查询语句是否走索引、是否包含特定子句、查询的表大小信息、查询遍历的数据行数和大小信息、查询得到数据的行数和行长信息中的一种或多种。
可选地,所述计分模块503采用以下计算方式中的一种或多种:
判断所述慢查询语句是否走索引,若是,则根据查询遍历的数据行数和大小信息计算所述慢查询语句的分数,若否,则根据查询的表大小信息计算所述慢查询语句的分数;
根据所述慢查询语句是否包含特定子句,以及在包含特定子句时,根据查询得到数据的行数和行长信息计算所述慢查询语句的分数;
根据所述慢查询语句的出现频率信息计算所述慢查询语句的分数。
可选地,若所述慢查询语句的分数低于预设阈值,则所述慢查询语句存在故障风险,否则不存在故障风险。
可选地,所述数据库慢查询语句分析装置500还包括整改模块505,用于对存在故障风险的慢查询语句进行处理以消除风险,例如向该慢查询语句对应的用户发出整改提醒和整改建议。
所述数据库慢查询语句分析装置与上文描述的数据库慢查询语句分析方法可相互对应参照。
本公开上述实施例中提供的装置基于多维度的特征信息对采集的慢查询语句进行打分分析,能够在故障发生前发现存在风险的慢查询语句,从而提前整改以消除线上服务的风险;还能够在线上故障发生后,从大量慢查询语句中自动识别引发故障的慢查询语句,从而快速定位和解决故障,降低对服务的影响。
本公开示例性实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。所述存储器存储有能够被所述至少一个处理器执行的计算机程序,所述计算机程序在被所述至少一个处理器执行时用于使所述电子设备执行根据本公开实施例的方法。
本公开示例性实施例还提供一种存储有计算机程序的非瞬时计算机可读存储介质,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本公开实施例的方法。
本公开示例性实施例还提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本公开实施例的方法。
参考图6,现将描述可以执行本公开的方法或实现本公开的装置的电子设备800的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图6所示,电子设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
电子设备800中的多个部件连接至I/O接口805,包括:输入单元806、输出单元807、存储单元808以及通信单元809。输入单元806可以是能向电子设备800输入信息的任何类型的设备,输入单元806可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元807可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元808可以包括但不限于磁盘、光盘。通信单元809允许电子设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理。例如,在一些实施例中,图2所示方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM802和/或通信单元809而被载入和/或安装到电子设备800上。在一些实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行图2所示方法。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
如本公开使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。

Claims (10)

1.一种数据库慢查询语句分析方法,其特征在于,包括:
获取待分析的慢查询语句,所述慢查询语句为结构化查询语句;
获取所述慢查询语句的执行特征信息;
基于所述执行特征信息计算所述慢查询语句的分数;
根据所述慢查询语句的分数判断是否存在故障风险。
2.如权利要求1所述的数据库慢查询语句分析方法,其特征在于,所述获取待分析的慢查询语句包括:
获取数据库的集群实例信息,从所述集群实例中选择线上实例;
采集线上实例的慢查询语句;
对所述线上实例的慢查询语句进行筛选得到待分析的慢查询语句。
3.如权利要求1所述的数据库慢查询语句分析方法,其特征在于,所述获取所述慢查询语句的执行特征信息包括:
获取同类型的所述慢查询语句的出现频率信息;和/或
在空闲实例上执行所述慢查询语句,获取执行性能和计划信息。
4.如权利要求3所述的数据库慢查询语句分析方法,其特征在于,所述执行性能和计划信息包括以下的一种或多种:
所述慢查询语句是否走索引、是否包含特定子句、查询的表大小信息、查询遍历的数据行数和大小信息、查询得到数据的行数和行长信息。
5.如权利要求4所述的数据库慢查询语句分析方法,其特征在于,所述基于所述执行特征信息计算所述慢查询语句的分数包括以下的一种或多种:
判断所述慢查询语句是否走索引,若是,则根据查询遍历的数据行数和大小信息计算所述慢查询语句的分数,若否,则根据查询的表大小信息计算所述慢查询语句的分数;
根据所述慢查询语句是否包含特定子句,以及在包含特定子句时,根据查询得到数据的行数和行长信息计算所述慢查询语句的分数;
根据所述慢查询语句的出现频率信息计算所述慢查询语句的分数。
6.如权利要求1所述的数据库慢查询语句分析方法,其特征在于,所述根据所述慢查询语句的分数确定是否存在故障风险包括:
若所述慢查询语句的分数达到预设条件,则所述慢查询语句存在故障风险。
7.如权利要求1所述的数据库慢查询语句分析方法,其特征在于,还包括:
当数据库发生慢查询故障时,根据故障类型、慢查询语句对应的故障类型、慢查询语句在故障期间的执行次数、慢查询语句异常信息和用户连接数异常波动信息中的一种或多种定位引发所述慢查询故障的慢查询语句。
8.一种数据库慢查询语句分析装置,其特征在于,包括:
语句获取模块,用于获取待分析的慢查询语句,所述慢查询语句为结构化查询语句;
特征获取模块,用于获取所述慢查询语句的执行特征信息;
计分模块,用于基于所述执行特征信息计算所述慢查询语句的分数;
判断模块,用于根据所述慢查询语句的分数判断是否存在故障风险。
9.一种电子设备,包括:
处理器;以及
存储程序的存储器,
其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据权利要求1-7中任一项所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-7中任一项所述的方法。
CN202311092066.3A 2023-08-28 2023-08-28 数据库慢查询语句分析方法及装置 Pending CN117076482A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311092066.3A CN117076482A (zh) 2023-08-28 2023-08-28 数据库慢查询语句分析方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311092066.3A CN117076482A (zh) 2023-08-28 2023-08-28 数据库慢查询语句分析方法及装置

Publications (1)

Publication Number Publication Date
CN117076482A true CN117076482A (zh) 2023-11-17

Family

ID=88709504

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311092066.3A Pending CN117076482A (zh) 2023-08-28 2023-08-28 数据库慢查询语句分析方法及装置

Country Status (1)

Country Link
CN (1) CN117076482A (zh)

Similar Documents

Publication Publication Date Title
JP2022118108A (ja) ログ監査方法、装置、電子機器、媒体およびコンピュータプログラム
CN111459698A (zh) 一种数据库集群故障自愈方法及装置
CN114021156A (zh) 漏洞自动化聚合的整理方法、装置、设备以及存储介质
CN115455091A (zh) 数据生成方法、装置、电子设备和存储介质
CN111639016A (zh) 大数据日志分析方法、装置及计算机存储介质
CN113641567A (zh) 一种数据库巡检方法、装置、电子设备及存储介质
CN116471174B (zh) 一种日志数据监测系统、方法、装置和存储介质
CN113901094B (zh) 一种数据处理方法、装置、设备及存储介质
CN117076482A (zh) 数据库慢查询语句分析方法及装置
CN113641670B (zh) 数据存储及数据检索方法、装置、电子设备及存储介质
CN115952792A (zh) 一种文本审核方法、装置、电子设备、存储介质及产品
CN114896418A (zh) 知识图谱构建方法、装置、电子设备及存储介质
CN115544010A (zh) 一种映射关系确定方法、装置、电子设备及存储介质
CN112307050B (zh) 一种重复关联计算的识别方法、装置及计算机系统
CN114090417A (zh) 一种数据处理性能分析方法、装置、系统、设备和介质
CN113220967B (zh) 互联网环境的生态健康程度衡量方法、装置和电子设备
CN116610724B (zh) 一种日志数据追踪方法、装置、电子设备和存储介质
CN114780021B (zh) 副本修复方法、装置、电子设备及存储介质
CN115858324B (zh) 基于ai的it设备故障处理方法、装置、设备和介质
CN117033410A (zh) 一种数据的血缘关系的管理方法和系统
CN117827840A (zh) 一种索引创建方法、装置、电子设备及存储介质
CN116304796A (zh) 一种数据分类方法、装置、设备及介质
CN117667938A (zh) 一种数据库索引的更新方法、装置、设备及存储介质
CN118796429A (zh) 文件数据入库的处理方法、装置、电子设备和存储介质
CN115577687A (zh) 电子表格中公式的处理方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination