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类型为目标类型,则调取所述第
权 利 要 求 书
1/2 页
2
文档被以下合辑收录
相关文档
评论