总结:

提出了一种基于端到端学习的方法,称为 Kepler,用于参数查询优化 (PQO)。现有的 PQO 技术依赖于传统的查询优化器成本模型,这些模型通常不准确,导致查询性能欠佳。Kepler 通过使用实际执行数据评估候选计划并训练机器学习模型来预测给定参数绑定值的最快计划,从而绕过了对准确成本模型的需求。该研究的主要发现包括显著改进了PostgreSQL上多个数据集的查询运行时,使用强大的神经网络技术来减少查询回归,以及开发一种称为行计数进化(RCE)的新型候选计划生成算法。Kepler 在 Stack 基准测试中实现了 2.41 倍的整体加速。本文档还讨论了参数化查询优化和用于查询优化的机器学习方面的相关工作。

要点:

  • 现有的参数化查询优化技术依赖于不准确的成本模型,导致查询性能欠佳。
  • Kepler 是一种基于端到端学习的参数化查询优化方法。
  • Kepler 通过使用实际执行数据评估候选计划并训练机器学习模型,从而绕过了对准确成本模型的需求。
  • Kepler 在 PostgreSQL 上的多个数据集上实现了查询运行时的重大改进。
  • Kepler 使用强大的神经网络技术来减少查询回归。
  • Kepler 引入了一种称为行计数进化 (RCE) 的新型候选计划生成算法。
  • Kepler 在 Stack 基准测试中实现了 2.41 倍的整体加速。

如何绕过PQO中对精确成本模型的需求

Kepler 通过实际执行数据评估候选计划并训练机器学习 (ML) 模型来预测给定参数绑定值的最快计划,从而绕过了 PQO 中对准确成本模型的需求 。这种方法使 Kepler 能够利用神经网络不确定性的最新进展来稳健地预测更快的计划,同时避免查询性能的回归。
传统的 PQO 技术依赖于不准确的成本模型,这通常会导致查询性能欠佳。然而,Kepler的方法通过使用实际执行数据来评估候选计划,从而绕过了这一要求。这消除了对准确成本模型的需求,而是依靠 ML 模型来预测最快的计划。Kepler 的 ML 模型利用神经网络的不确定性来确保可靠的预测,并避免查询性能的回归 。
Kepler 的 PQO 方法基于行计数演化 (RCE) 算法,这是一种在子计划基数空间中运行的新型计划生成算法。RCE根据子计划基数空间中的扰动生成候选计划,并使用实际执行数据对其进行评估。这种方法使 Kepler 能够在 PostgreSQL上的多个数据集上实现查询运行时的显著改进 。
总之,Kepler 通过使用实际执行数据评估候选计划并训练 ML 模型来预测最快的,从而绕过了 PQO 中对准确成本模型的需求 。这种方法与行计数演进算法相结合,使 Kepler 能够显著加快查询延迟,并将查询性能提高。

基于行计数演化 (RCE) 算法逻辑

行计数演变 (RCE) 算法是一种计算效率高的方法,它通过扰动优化器的基数估计来生成新计划。RCE 利用内置的查询优化器来生成候选计划,并将随机扰动作为的进化式算法应用。它维护一系列的生成计划,每一代都由统一采样和扰动的父计划组成,以生成的子计划。RCE 仅干扰抽样查询计划中出现的子计划的基数,从而在不显著损失通用性的情况下提高效率 。
RCE 利用优化器 提供的初始估计值,通过在子计划基数的低维子空间中随机游走来有效地探索计划空间 。它包括各种超参数,例如代数、扰动的指数基数和范围,以及计划数量限制。RCE 的目标是生成一组计划,其中包含每个查询实例的近乎最优的计划,从而在生成的计划数量和潜在的总加速
为了收集训练数据,RCE 在训练工作负载上执行每个计划,并生成执行延迟数据集,用于监督最佳计划预测 。自适应超时和近乎最优的计划覆盖用于在执行期间修剪次优计划。执行在多个数据库之间并行化,并执行重复执行以模拟热缓冲区缓存场景,并降低执行时间测量值
总体而言,RCE 通过基于扰动的基数估计并利用查询优化器生成候选计划,绕过了 PQO 中对准确成本模型的需求 。

随机扰动在RCE的探索中起什么作用

随机扰动在RCE探索中的作用是通过随机扰动优化器的基数估计来生成新的计划。RCE 应用随机扰动作为演化风格的算法,保持的生成计划序列。它统一地对上一代的父计划进行采样,并仅扰乱父计划中出现的子计划的联接基数。通过多次重复此过程并将产生的扰动馈送到查询优化器中,RCE 会生成一组子计划。这些随机扰动使 RCE 能够探索计划空间,并可能找到

原文:https://dl.acm.org/doi/pdf/10.1145/3588963