CN117743015A - 一种sql故障定位方法、装置、***及设备 - Google Patents

一种sql故障定位方法、装置、***及设备 Download PDF

Info

Publication number
CN117743015A
CN117743015A CN202311851256.9A CN202311851256A CN117743015A CN 117743015 A CN117743015 A CN 117743015A CN 202311851256 A CN202311851256 A CN 202311851256A CN 117743015 A CN117743015 A CN 117743015A
Authority
CN
China
Prior art keywords
sql
historical
execution
execution result
fault
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
CN202311851256.9A
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.)
Jinzhuan Xinke Co Ltd
Original Assignee
Jinzhuan Xinke 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 Jinzhuan Xinke Co Ltd filed Critical Jinzhuan Xinke Co Ltd
Priority to CN202311851256.9A priority Critical patent/CN117743015A/zh
Publication of CN117743015A publication Critical patent/CN117743015A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种SQL故障定位方法、装置、***及设备,通过将当前执行计划结果与历史执行计划结果进行对比,从而可以直观地看出问题SQL在哪一阶段出现了故障,从而快速定位故障原因,对业务SQL进行优化,同时,本申请可应用于多种类型数据库,实用性广泛,解决了目前对执行计划的分析较为依赖专家经验,存在不确定性,且数据库结构的复杂性提高,其中数据分布及统计信息也随之变化,使得执行计划的结果更加复杂,大大增加了DBA分析解决故障的难度,降低了工作效率的技术问题。

Description

一种SQL故障定位方法、装置、***及设备
技术领域
本申请涉及数据库处理技术领域,尤其涉及一种SQL故障定位方法、装置、***及设备。
背景技术
随着社会的发展,各行各业在技术上取得了巨大的进步,尤其是大数据时代的来临,使得数据量呈现指数级增长,数据库在其中扮演着越来越重要的角色。面对愈加复杂的数据库环境,慢查询、锁等待、锁超时等数据库常见SQL问题也愈加突出。
执行计划是数据库***在执行SQL语句时生成的一种描述执行方式和顺序的计划,它提供了有关查询如何被执行、使用哪些索引、连接方式、运行时间等信息,数据库管理员(Database Administrator,DBA)可以利用执行计划优化查询性能、调试和诊断查询问题。
通过对执行计划的分析,为DBA运维专家提供了一种解决慢查询等SQL问题的方式,但是该过程极其地依赖经验,存在不确定性。尤其是在如今数据量飞速增长以及分布式数据库成为主流的情形下,生产环境数据库中的数据无时无刻不在变化,数据库结构的复杂性提高,其中数据分布及统计信息也随之变化,使得执行计划的结果更加复杂,大大增加了DBA分析解决故障的难度,降低了工作效率。
发明内容
本申请提供了一种SQL故障定位方法、装置、***及设备,解决了目前对执行计划的分析较为依赖专家经验,存在不确定性,且数据库结构的复杂性提高,其中数据分布及统计信息也随之变化,使得执行计划的结果更加复杂,大大增加了DBA分析解决故障的难度,降低了工作效率的技术问题。
有鉴于此,本申请第一方面提供了一种SQL故障定位方法,所述方法包括:
S1、获取当前问题SQL语句的执行计划的第一执行结果;
S2、获取历史执行计划表中与所述当前问题SQL语句相同SQL ID的历史SQL语句的历史执行计划的第二执行结果;
S3、将所述第一执行结果与所述第二执行结果进行对比,确定所述当前问题SQL的故障原因。
可选地,所述步骤S2具体包括:
S21、获取历史执行计划表中与所述当前问题SQL语句相同SQL ID的若干个第一历史SQL语句;
S22、确定若干个所述第一历史SQL语句中执行结果为执行成功且执行时间最长的第二历史SQL语句;
S23、若所述第二历史SQL语句的SQL类型为非目标类型,则从所述第一历史SQL语句中剔除所述第二历史SQL语句并重新返回执行步骤S22;
S24、若所述第二历史SQL语句的SQL类型为目标类型,则调取所述第二历史SQL语句对应的历史执行计划的第二执行结果。
可选地,所述步骤S24具体包括:
若所述第二历史SQL语句的SQL类型为目标类型,且当前实例中存在有目标标签的计算节点,则通过所述计算节点采集第二历史SQL语句对应的历史执行计划的第二执行结果;
若所述第二历史SQL语句的SQL类型为目标类型,但当前实例中不存在有目标标签的计算节点,则通过全量SQL表中的所述第二历史SQL语句对应的计算节点采集历史执行计划的第二执行结果。
可选地,所述步骤S3具体包括:
将所述第一执行结果与所述第二执行结果进行对比,获取数据库前后处理所述历史SQL语句以及表连接的过程数据;
根据所述过程数据确定所述当前问题SQL的故障阶段以及故障原因。
本申请第二方面提供一种SQL故障定位装置,所述装置包括:
第一获取单元,用于获取当前问题SQL语句的执行计划的第一执行结果;
第二获取单元,用于获取历史执行计划表中与所述当前问题SQL语句相同SQL ID的历史SQL语句的历史执行计划的第二执行结果;
故障定位单元,用于将所述第一执行结果与所述第二执行结果进行对比,确定所述当前问题SQL的故障原因。
可选地,所述第二获取单元具体包括:
获取子单元,用于获取历史执行计划表中与所述当前问题SQL语句相同SQL ID的若干个第一历史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进行优化,同时,本申请可应用于多种类型数据库,实用性广泛,解决了目前对执行计划的分析较为依赖专家经验,存在不确定性,且数据库结构的复杂性提高,其中数据分布及统计信息也随之变化,使得执行计划的结果更加复杂,大大增加了DBA分析解决故障的难度,降低了工作效率的技术问题。
附图说明
图1为本申请实施例中SQL故障定位方法的方法流程图;
图2为本申请实施例中SQL故障定位装置的结构示意图;
图3为本申请实施例中SQL故障定位***的结构示意图;
图4为本申请实施例中SQL故障定位设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请设计了一种SQL故障定位方法、装置、***及设备,解决了目前对执行计划的分析较为依赖专家经验,存在不确定性,且数据库结构的复杂性提高,其中数据分布及统计信息也随之变化,使得执行计划的结果更加复杂,大大增加了DBA分析解决故障的难度,降低了工作效率的技术问题。
为了便于理解,请参阅图1,图1为本申请实施例中SQL故障定位方法的方法流程图,如图1所示,具体为:
S1、获取当前问题SQL语句的执行计划的第一执行结果;
S2、获取历史执行计划表中与当前问题SQL语句相同SQL ID的历史SQL语句的历史执行计划的第二执行结果;
需要说明的是,在历史执行计划表中查询出与当前问题SQL语句拥有相同SQL模板的历史SQL语句的历史执行计划的第二执行结果,其中,相同SQL模板指的是拥有同一个SQLID。
S3、将第一执行结果与第二执行结果进行对比,确定当前问题SQL的故障原因。
进一步地,步骤S2具体包括:
S21、获取历史执行计划表中与当前问题SQL语句相同SQL ID的若干个第一历史SQL语句;
S22、确定若干个第一历史SQL语句中执行结果为执行成功且执行时间最长的第二历史SQL语句;
S23、若第二历史SQL语句的SQL类型为非目标类型,则从第一历史SQL语句中剔除第二历史SQL语句并重新返回执行步骤S22;
S24、若第二历史SQL语句的SQL类型为目标类型,则调取第二历史SQL语句对应的历史执行计划的第二执行结果。
需要说明的是,根据一个采集周期内的SQL ID信息,选择若干个第一历史SQL语句中对应的执行成功并且执行时间是最长的一条第二历史SQL语句,并且筛选SQL类型为INSERT、DELETE、UPDATE、SELECT的SQL语句,该类型语句更具代表性,减小后续通过计算节点获取第二历史SQL语句对应执行计划的压力,减少对正常业务的影响,并且减少磁盘存储空间的资源占用。
进一步地,步骤S24具体包括:
若第二历史SQL语句的SQL类型为目标类型,且当前实例中存在有目标标签的计算节点,则通过计算节点采集第二历史SQL语句对应的历史执行计划的第二执行结果;
若第二历史SQL语句的SQL类型为目标类型,但当前实例中不存在有目标标签的计算节点,则通过全量SQL表中的第二历史SQL语句对应的计算节点采集历史执行计划的第二执行结果。
需要说明的是,确定了第二历史SQL语句后,再通过运维采集代理(INSIGHTAGENT,IA)接口向对应计算节点采集相应的执行计划,若该实例中存在标识有“运维CN”标签的计算节点,则使用该类计算节点采集执行计划,否则使用全量SQL表中SQL语句对应的计算节点采集执行计划,同样减少对正常业务的影响。
进一步地,步骤S3具体包括:
将第一执行结果与第二执行结果进行对比,获取数据库前后处理历史SQL语句以及表连接的过程数据;
根据过程数据确定当前问题SQL的故障阶段以及故障原因。
需要说明的是,慢查询SQL等问题SQL都有自己的SQL ID、在哪个数据库执行及所属实例等信息,通过这些信息从对应租户的SQL执行计划表中查询出该SQL ID对应的历史执行计划,DBA可以同时查看当前执行计划结果与历史执行计划结果,从而进行对比获取想要的信息。
请参阅图2,图2为本申请实施例中SQL故障定位装置的结构示意图,如图2所示,具体为:
第一获取单元201,用于获取当前问题SQL语句的执行计划的第一执行结果;
第二获取单元202,用于获取历史执行计划表中与当前问题SQL语句相同SQL ID的历史SQL语句的历史执行计划的第二执行结果;
故障定位单元203,用于将第一执行结果与第二执行结果进行对比,确定当前问题SQL的故障原因。
进一步地,第二获取单元202具体包括:
获取子单元,用于获取历史执行计划表中与当前问题SQL语句相同SQL ID的若干个第一历史SQL语句;
确定子单元,用于确定若干个第一历史SQL语句中执行结果为执行成功且执行时间最长的第二历史SQL语句;
第一处理子单元,用于若第二历史SQL语句的SQL类型为非目标类型,则从第一历史SQL语句中剔除第二历史SQL语句并跳转至确定单元;
第二处理子单元,用于若第二历史SQL语句的SQL类型为目标类型,则调取第二历史SQL语句对应的历史执行计划的第二执行结果。
进一步地,第二处理子单元具体用于:
若第二历史SQL语句的SQL类型为目标类型,且当前实例中存在有目标标签的计算节点,则通过计算节点采集第二历史SQL语句对应的历史执行计划的第二执行结果;
若第二历史SQL语句的SQL类型为目标类型,但当前实例中不存在有目标标签的计算节点,则通过全量SQL表中的第二历史SQL语句对应的计算节点采集历史执行计划的第二执行结果。
进一步地,故障定位单元203具体用于:
将第一执行结果与第二执行结果进行对比,获取数据库前后处理历史SQL语句以及表连接的过程数据;
根据过程数据确定当前问题SQL的故障阶段以及故障原因。
请参阅图3,图3为本申请实施例中SQL故障定位***的结构示意图,如图3所示,具体为:
运维平台301、计算节点302以及***实例303;
***实例303用于对各个实例创建对应记录全量SQL的全量SQL表;
计算节点302用于向各个数据节点下发SQL语句的执行计划,接收SQL语句的执行结果,向***实例303中SQL语句对应的全量SQL表中更新执行计划的执行结果;
运维平台301用于执行如上述第一方面的SQL故障定位方法的步骤。
需要说明的是,新增一个***实例303作为存储单元创建监控库,元数据管理节点(Metadata Server,MDS)为每个实例在***实例303中创建一个单独的全量SQL表记录全量SQL,并定期做清理。
客户端通过连接实例访问数据库,每个连接实例都会绑定计算节点302(ComputerNode,CN),计算节点302负责SQL优化、SQL路由、数据节点的负载均衡、分布式事务的调度等,所以可以使用计算节点302记录全量SQL。为该记录全量SQL统计功能设置开关,打开开关,则计算节点302执行统计。
计算节点302向数据节点(Data Node,DN)下发SQL,DN在返回结果时,通过扩展SQL协议,带上对应SQL在DN层执行的统计信息,包括扫描行数,命中行数,物理读IO,逻辑读IO,锁等待时间等,返回给CN。
计算节点302内部引入内存表,CN对原始SQL执行的各阶段耗时、DN执行的数据进行汇总,存入内存表。
计算节点302定期将内存表的数据通过批量协议***到***实例303对应实例的全量SQL表。
在运维平台301(INSIGHT)增加采集执行计划的任务,为该执行计划采集功能设置采集开关与采集周期,打开采集开关,则INSIGHT执行采集,以采集周期从***实例库对应各实例的全量SQL表中,根据本采集周期内的SQL ID(相同SQL模板拥有同一个SQL ID)信息,选择对应的执行成功并且执行时间是最长的一条SQL语句,并且筛选SQL类型为INSERT、DELETE、UPDATE、SELECT的SQL语句,该类型语句更具代表性,减小后续通过计算节点302获取执行计划的压力,减少对正常业务的影响,并且减少磁盘存储空间的资源占用。
获得相应SQL语句后再通过运维采集代理(INSIGHTAGENT,IA)接口向对应计算节点302采集相应的执行计划,若该实例中存在标识有“运维CN”标签的计算节点302,则使用该类计算节点302采集执行计划,否则使用全量SQL表中SQL语句对应的计算节点302采集执行计划,同样减少对正常业务的影响。
最后IA通过接口将执行计划结果返回给运维平台301,运维平台301保存到***实例303对应各租户的SQL执行计划表。
本申请实施例还提供了另一种SQL故障定位设备,如图4所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该终端可以为包括手机、平板电脑、个人数字助理(英文全称:Personal DigitalAssistant,英文缩写:PDA)、销售终端(英文全称:Point of Sales,英文缩写:POS)、车载电脑等任意终端设备,以终端为手机为例:
图4示出的是与本申请实施例提供的终端相关的手机的部分结构的框图。参考图4,手机包括:射频(英文全称:Radio Frequency,英文缩写:RF)电路1010、存储器1020、输入单元1030、显示单元1040、传感器1050、音频电路1060、无线保真(英文全称:wirelessfidelity,英文缩写:WiFi)模块1070、处理器1080、以及电源1090等部件。本领域技术人员可以理解,图4中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图4对手机的各个构成部件进行具体的介绍:
RF电路1010可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1080处理;另外,将设计上行的数据发送给基站。通常,RF电路1010包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(英文全称:LowNoise Amplifier,英文缩写:LNA)、双工器等。此外,RF电路1010还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯***(英文全称:Global System of Mobile communication,英文缩写:GSM)、通用分组无线服务(英文全称:General Packet Radio Service,GPRS)、码分多址(英文全称:CodeDivision Multiple Access,英文缩写:CDMA)、宽带码分多址(英文全称:Wideband CodeDivision Multiple Access,英文缩写:WCDMA)、长期演进(英文全称:Long TermEvolution,英文缩写:LTE)、电子邮件、短消息服务(英文全称:Short Messaging Service,SMS)等。
存储器1020可用于存储软件程序以及模块,处理器1080通过运行存储在存储器1020的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元1030可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1030可包括触控面板1031以及其他输入设备1032。触控面板1031,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1031上或在触控面板1031附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1031可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1080,并能接收处理器1080发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1031。除了触控面板1031,输入单元1030还可以包括其他输入设备1032。具体地,其他输入设备1032可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1040可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1040可包括显示面板1041,可选的,可以采用液晶显示器(英文全称:Liquid Crystal Display,英文缩写:LCD)、有机发光二极管(英文全称:Organic Light-Emitting Diode,英文缩写:OLED)等形式来配置显示面板1041。进一步的,触控面板1031可覆盖显示面板1041,当触控面板1031检测到在其上或附近的触摸操作后,传送给处理器1080以确定触摸事件的类型,随后处理器1080根据触摸事件的类型在显示面板1041上提供相应的视觉输出。虽然在图4中,触控面板1031与显示面板1041是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板1031与显示面板1041集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器1050,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1041的亮度,接近传感器可在手机移动到耳边时,关闭显示面板1041和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路1060、扬声器1061,传声器1062可提供用户与手机之间的音频接口。音频电路1060可将接收到的音频数据转换后的电信号,传输到扬声器1061,由扬声器1061转换为声音信号输出;另一方面,传声器1062将收集的声音信号转换为电信号,由音频电路1060接收后转换为音频数据,再将音频数据输出处理器1080处理后,经RF电路1010以发送给比如另一手机,或者将音频数据输出至存储器1020以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块1070可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图4示出了WiFi模块1070,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器1080是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1020内的软件程序和/或模块,以及调用存储在存储器1020内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1080可包括一个或多个处理单元;优选的,处理器1080可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1080中。
手机还包括给各个部件供电的电源1090(比如电池),优选的,电源可以通过电源管理***与处理器1080逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本申请实施例中,该终端所包括的处理器1080还具有以下功能:
S1、获取当前问题SQL语句的执行计划的第一执行结果;
S2、获取历史执行计划表中与当前问题SQL语句相同SQL ID的历史SQL语句的历史执行计划的第二执行结果;
S3、将第一执行结果与第二执行结果进行对比,确定当前问题SQL的故障原因。
本申请实施例中,提供了一种SQL故障定位方法、装置、***及设备,通过将当前执行计划结果与历史执行计划结果进行对比,从而可以直观地看出问题SQL在哪一阶段出现了故障,从而快速定位故障原因,对业务SQL进行优化,同时,本申请可应用于多种类型数据库,实用性广泛,解决了目前对执行计划的分析较为依赖专家经验,存在不确定性,且数据库结构的复杂性提高,其中数据分布及统计信息也随之变化,使得执行计划的结果更加复杂,大大增加了DBA分析解决故障的难度,降低了工作效率的技术问题。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-OnlyMemory,英文缩写:ROM)、随机存取存储器(英文全称:Random Access Memory,英文缩写:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种SQL故障定位方法,其特征在于,包括:
S1、获取当前问题SQL语句的执行计划的第一执行结果;
S2、获取历史执行计划表中与所述当前问题SQL语句相同SQL ID的历史SQL语句的历史执行计划的第二执行结果;
S3、将所述第一执行结果与所述第二执行结果进行对比,确定所述当前问题SQL的故障原因。
2.根据权利要求1所述的SQL故障定位方法,其特征在于,所述步骤S2具体包括:
S21、获取历史执行计划表中与所述当前问题SQL语句相同SQLID的若干个第一历史SQL语句;
S22、确定若干个所述第一历史SQL语句中执行结果为执行成功且执行时间最长的第二历史SQL语句;
S23、若所述第二历史SQL语句的SQL类型为非目标类型,则从所述第一历史SQL语句中剔除所述第二历史SQL语句并重新返回执行步骤S22;
S24、若所述第二历史SQL语句的SQL类型为目标类型,则调取所述第二历史SQL语句对应的历史执行计划的第二执行结果。
3.根据权利要求2所述的SQL故障定位方法,其特征在于,所述步骤S24具体包括:
若所述第二历史SQL语句的SQL类型为目标类型,且当前实例中存在有目标标签的计算节点,则通过所述计算节点采集第二历史SQL语句对应的历史执行计划的第二执行结果;
若所述第二历史SQL语句的SQL类型为目标类型,但当前实例中不存在有目标标签的计算节点,则通过全量SQL表中的所述第二历史SQL语句对应的计算节点采集历史执行计划的第二执行结果。
4.根据权利要求1所述的SQL故障定位方法,其特征在于,所述步骤S3具体包括:
将所述第一执行结果与所述第二执行结果进行对比,获取数据库前后处理所述历史SQL语句以及表连接的过程数据;
根据所述过程数据确定所述当前问题SQL的故障阶段以及故障原因。
5.一种SQL故障定位装置,其特征在于,包括:
第一获取单元,用于获取当前问题SQL语句的执行计划的第一执行结果;
第二获取单元,用于获取历史执行计划表中与所述当前问题SQL语句相同SQLID的历史SQL语句的历史执行计划的第二执行结果;
故障定位单元,用于将所述第一执行结果与所述第二执行结果进行对比,确定所述当前问题SQL的故障原因。
6.根据权利要求5所述的SQL故障定位装置,其特征在于,所述第二获取单元具体包括:
获取子单元,用于获取历史执行计划表中与所述当前问题SQL语句相同SQLID的若干个第一历史SQL语句;
确定子单元,用于确定若干个所述第一历史SQL语句中执行结果为执行成功且执行时间最长的第二历史SQL语句;
第一处理子单元,用于若所述第二历史SQL语句的SQL类型为非目标类型,则从所述第一历史SQL语句中剔除所述第二历史SQL语句并跳转至所述确定单元;
第二处理子单元,用于若所述第二历史SQL语句的SQL类型为目标类型,则调取所述第二历史SQL语句对应的历史执行计划的第二执行结果。
7.根据权利要求6所述的SQL故障定位装置,其特征在于,所述第二处理子单元具体用于:
若所述第二历史SQL语句的SQL类型为目标类型,且当前实例中存在有目标标签的计算节点,则通过所述计算节点采集第二历史SQL语句对应的历史执行计划的第二执行结果;
若所述第二历史SQL语句的SQL类型为目标类型,但当前实例中不存在有目标标签的计算节点,则通过全量SQL表中的所述第二历史SQL语句对应的计算节点采集历史执行计划的第二执行结果。
8.根据权利要求5所述的SQL故障定位装置,其特征在于,所述故障定位单元具体用于:
将所述第一执行结果与所述第二执行结果进行对比,获取数据库前后处理所述历史SQL语句以及表连接的过程数据;
根据所述过程数据确定所述当前问题SQL的故障阶段以及故障原因。
9.一种SQL故障定位***,其特征在于,包括:
运维平台、计算节点以及***实例;
所述***实例用于对各个实例创建对应记录全量SQL的全量SQL表;
所述计算节点用于向各个数据节点下发SQL语句的执行计划,接收所述SQL语句的执行结果,向所述***实例中所述SQL语句对应的全量SQL表中更新执行计划的执行结果;
所述运维平台用于执行权利要求1至4任意一项所述的SQL故障定位方法。
10.一种SQL故障定位设备,其特征在于,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求1-4任一项所述的SQL故障定位方法。
CN202311851256.9A 2023-12-29 2023-12-29 一种sql故障定位方法、装置、***及设备 Pending CN117743015A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311851256.9A CN117743015A (zh) 2023-12-29 2023-12-29 一种sql故障定位方法、装置、***及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311851256.9A CN117743015A (zh) 2023-12-29 2023-12-29 一种sql故障定位方法、装置、***及设备

Publications (1)

Publication Number Publication Date
CN117743015A true CN117743015A (zh) 2024-03-22

Family

ID=90260673

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311851256.9A Pending CN117743015A (zh) 2023-12-29 2023-12-29 一种sql故障定位方法、装置、***及设备

Country Status (1)

Country Link
CN (1) CN117743015A (zh)

Similar Documents

Publication Publication Date Title
CN110597793A (zh) 数据管理方法及装置、电子设备和计算机可读存储介质
CN116303085A (zh) 一种测试原因分析方法、装置、设备及存储介质
CN116468382A (zh) 一种rpa机器人流程管理方法、装置、设备及存储介质
CN105005529A (zh) 一种对应用程序进行测试的方法及装置
CN115617899A (zh) 一种数据可视化处理方法、装置、设备及存储介质
CN117743015A (zh) 一种sql故障定位方法、装置、***及设备
CN104965753A (zh) 一种桌面布局方法、服务器、终端,及***
CN114817419A (zh) 基于Kafka的媒资数据存储方法、装置、电子设备及存储介质
CN117743355A (zh) 一种分布式数据库并发更新方法、装置、设备及存储介质
CN117807132A (zh) 分布式数据库直方图创建方法、装置、设备及存储介质
CN117332153B (zh) 一种基于区间矩阵的标签选择方法、***、设备及介质
CN116303646A (zh) 一种跨数据库的数据比对方法、装置、设备及存储介质
CN115565215B (zh) 一种人脸识别算法切换方法、装置及存储介质
CN116501413A (zh) 一种自动生成接口调用方法、装置、设备及存储介质
CN117041013A (zh) 一种故障节点处理方法、装置、***、设备及存储介质
CN116881143A (zh) 一种数据对象复制异常排查方法、装置、设备及存储介质
CN117688085A (zh) 分布式数据库切换方法、装置、***、设备及存储介质
CN116257503A (zh) 一种数据迁移处理方法、装置、设备及存储介质
CN117011023A (zh) 一种全链路回归数据管理方法、装置、设备及存储介质
CN116680292A (zh) 一种数据查询方法、装置、设备及计算机可读存储介质
CN116862473A (zh) 银行生产应用调用关系分析方法、装置、设备及存储介质
CN116680188A (zh) 一种数据处理方法、装置、设备及计算机可读存储介质
CN116737761A (zh) 一种异步对账处理方法、装置、设备及存储介质
CN116680185A (zh) 一种测试自动化执行优化方法、装置、设备及存储介质
CN118349481A (zh) 一种java代码异常检测方法、装置、设备及存储介质

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