基于不确定性感知的阶梯式查询内存预测方法

摘要: 本发明属于数据库资源预测与机器学习,具体地说,是涉及一种基于不确定性感知的阶梯式查询内存预测方法。背景技术:1、数据库系统在处理复杂分析型查询时,需要为排序、哈...
基于不确定性感知的阶梯式查询内存预测方法

本发明属于数据库资源预测与机器学习,具体地说,是涉及一种基于不确定性感知的阶梯式查询内存预测方法。

背景技术:

1、数据库系统在处理复杂分析型查询时,需要为排序、哈希连接、聚合、物化、窗口聚合等操作分配内存。查询级峰值内存估算不仅影响单条查询能否获得合适的内存预算,也会影响资源池中其他查询的准入、等待和整体完成时间。因此,查询级峰值内存预测是数据库资源管理中的关键技术。

2、现有数据库系统通常依赖优化器统计信息、代价模型、启发式规则或人工经验公式进行内存估算。这类方法实现成熟、开销较低,但在复杂连接、数据倾斜、非均匀数据分布、混合负载和估计误差累积等场景中,容易出现峰值内存估算不准的问题。估算过高会导致资源池调度过于保守,降低并发度;估算过低则可能引起执行期内存不足、临时落盘和查询尾部延迟增加。

3、基于机器学习的查询资源预测方法能够从历史查询执行计划和真实资源消耗中学习非线性映射关系,相较传统规则估算具有更好的预测潜力。然而,单一学习模型在数据库在线路径中仍存在难以兼顾的问题:轻量模型推理快但对复杂计划结构表达不足;结构化模型表达能力强但推理开销更高;最复杂模型虽然可能在离线精度上更优,但将所有查询统一交给该模型处理会增加不必要的在线成本,并且在异常样本或分布漂移情况下仍可能产生不可靠预测。

4、因此,需要一种能够在预测精度、在线推理开销和安全回退边界之间取得平衡的查询内存预测方法,使普通查询能够快速完成预测,复杂查询能够按需进入更强模型复核,而极端或不可靠样本能够回退至数据库原生估算路径。

技术实现思路

1、本发明的目的在于提供一种基于不确定性感知的阶梯式查询内存预测方法,用于解决传统规则式查询内存估算精度不足、单一学习模型难以同时兼顾精度和在线开销、以及不可靠预测缺乏明确拒绝与回退边界的问题。

2、为实现上述目的,本发明采用的技术方案如下:

3、一种基于不确定性感知的阶梯式查询内存预测方法,包括以下步骤:

4、s1,获取用于训练或校准的历史查询样本,所述历史查询样本包括查询执行计划以及对应的查询级峰值内存;

5、s2,根据待预测的查询执行计划,提取与查询级峰值内存相关的计划特征;

6、s3,构建或调用包括多个预测阶段的阶梯式预测模型链,所述多个预测阶段具有不同的输入表示、模型复杂度或推理开销;其中,所述多个预测阶段按照条件触发方式逐级调用,后续预测阶段仅在前一预测阶段未被接受时被调用;

7、s4,按照预设顺序调用所述阶梯式预测模型链中的当前预测阶段,得到当前阶段的查询级峰值内存预测值以及与该预测值对应的不确定性;

8、s5,根据当前阶段预测值的合法性以及所述不确定性是否满足接受条件,决定接受当前阶段预测值,或升级至后续预测阶段继续预测;

9、s6,当任一预测阶段的预测值被接受时,将该预测值作为查询级峰值内存候选值;当所述阶梯式预测模型链无法给出可接受预测值或预测过程异常时,回退至数据库原生查询内存估算器;

10、s7,根据所述查询级峰值内存候选值或数据库原生查询内存估算器的输出,生成待预测查询的查询级峰值内存估算结果。

11、进一步地,在本发明中,所述计划特征为计划规模特征、代价特征、算子语义特征、算子资源敏感性特征和计划结构特征中的一种或多种;所述计划特征包括估计行数、估计宽度、启动代价、总代价、算子类型、节点深度、计划树拓扑、计划图拓扑、内存敏感算子聚合量中的一种或多种。

12、进一步地,在本发明中,所述阶梯式预测模型链至少包括低开销预测阶段和结构化复核预测阶段,所述阶梯式预测模型链包括一级快速预测模型、二级树结构复核模型和三级图结构深度复核模型,其中一级快速预测模型基于固定长度统计特征进行预测,二级树结构复核模型基于查询计划树进行预测,三级图结构深度复核模型基于查询计划图进行预测。

13、进一步地,在本发明中,所述不确定性通过同一预测阶段内的多个候选输出计算得到,所述多个候选输出由成员集成、随机前向传播、贝叶斯近似推理或重复采样中的一种或多种方式产生;将所述多个候选输出变换至实际内存空间后,以所述多个候选输出的均值作为当前阶段预测值,以所述多个候选输出的离散程度作为当前阶段不确定性。

14、进一步地,在本发明中,所述接受条件包括当前阶段预测值为合法数值且当前阶段不确定性不超过对应的不确定性接受阈值;所述不确定性接受阈值根据校准样本上的不确定性分布确定,并根据在线历史反馈中的预测误差、尾部误差、低估率或预测区间覆盖率进行动态调整。

15、进一步地,在本发明中,所述回退至数据库原生查询内存估算器的具体过程为:在模型未启用、模型不可用、输入构造失败、推理失败、输出非法、所有预测阶段均不满足接受条件中的任一情况发生时,采用数据库原生查询内存估算器的输出作为查询级峰值内存估算结果;其中,在生成查询级峰值内存估算结果之前,对被接受的查询级峰值内存候选值进行边界约束,使其不低于预设下限且不高于当前查询上下文允许的内存上限。

16、进一步地,在本发明中,所述历史查询样本来自数据库历史查询信息、执行日志或资源监控记录中的一种或多种,且所述查询级峰值内存作为监督训练、阈值校准或在线反馈调整的依据。

17、进一步地,在本发明中,所述方法通过数据库插件、数据库内置模块、独立预测服务或计算机程序中的任一种形式接入数据库查询内存估算路径。

18、与现有技术相比,本发明具有以下有益效果:

19、(1)本发明不是将所有查询统一交给单一模型处理,而是按照低成本优先、复杂模型后置的方式组织预测链,使大多数普通查询能够在首层快速完成预测。

20、(2)本发明通过统一不确定性度量和接受阈值管理预测结果,使模型输出具备可接受、可拒绝和可回退的边界,避免不可靠预测直接进入数据库资源决策。

21、(3)本发明在轻量统计特征和结构化计划特征之间建立分层使用关系,能够在普通样本和复杂样本之间按需分配模型推理预算。

22、(4)本发明保留数据库原生查询内存估算器作为最终回退路径,并对被接受预测值进行限幅,因此能够在引入学习型预测能力的同时保持系统决策安全边界。

1.一种基于不确定性感知的阶梯式查询内存预测方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的基于不确定性感知的阶梯式查询内存预测方法,其特征在于,所述计划特征为计划规模特征、代价特征、算子语义特征、算子资源敏感性特征和计划结构特征中的一种或多种;所述计划特征包括估计行数、估计宽度、启动代价、总代价、算子类型、节点深度、计划树拓扑、计划图拓扑、内存敏感算子聚合量中的一种或多种。

3.根据权利要求1所述的基于不确定性感知的阶梯式查询内存预测方法,其特征在于,所述阶梯式预测模型链至少包括低开销预测阶段和结构化复核预测阶段,所述阶梯式预测模型链包括一级快速预测模型、二级树结构复核模型和三级图结构深度复核模型,其中一级快速预测模型基于固定长度统计特征进行预测,二级树结构复核模型基于查询计划树进行预测,三级图结构深度复核模型基于查询计划图进行预测。

4.根据权利要求1所述的基于不确定性感知的阶梯式查询内存预测方法,其特征在于,所述不确定性通过同一预测阶段内的多个候选输出计算得到,所述多个候选输出由成员集成、随机前向传播、贝叶斯近似推理或重复采样中的一种或多种方式产生;将所述多个候选输出变换至实际内存空间后,以所述多个候选输出的均值作为当前阶段预测值,以所述多个候选输出的离散程度作为当前阶段不确定性。

5.根据权利要求1所述的基于不确定性感知的阶梯式查询内存预测方法,其特征在于,所述接受条件包括当前阶段预测值为合法数值且当前阶段不确定性不超过对应的不确定性接受阈值;所述不确定性接受阈值根据校准样本上的不确定性分布确定,并根据在线历史反馈中的预测误差、尾部误差、低估率或预测区间覆盖率进行动态调整。

6.根据权利要求1所述的基于不确定性感知的阶梯式查询内存预测方法,其特征在于,所述回退至数据库原生查询内存估算器的具体过程为:在模型未启用、模型不可用、输入构造失败、推理失败、输出非法、所有预测阶段均不满足接受条件中的任一情况发生时,采用数据库原生查询内存估算器的输出作为查询级峰值内存估算结果;其中,在生成查询级峰值内存估算结果之前,对被接受的查询级峰值内存候选值进行边界约束,使其不低于预设下限且不高于当前查询上下文允许的内存上限。

7.根据权利要求1所述的基于不确定性感知的阶梯式查询内存预测方法,其特征在于,所述历史查询样本来自数据库历史查询信息、执行日志或资源监控记录中的一种或多种,且所述查询级峰值内存作为监督训练、阈值校准或在线反馈调整的依据。

8.根据权利要求1至7任一项所述的基于不确定性感知的阶梯式查询内存预测方法,其特征在于,所述方法通过数据库插件、数据库内置模块、独立预测服务或计算机程序中的任一种形式接入数据库查询内存估算路径。