在现代关系数据库中,基数估计(CE)起着至关重要的作用。简单来说,基数估计就是预测数据库查询将返回多少中间结果。这一预测对查询优化器的执行计划选择影响巨大,比如决定连接顺序、是否使用索引以及最佳连接方法的选择。如果基数估计不准确,执行计划可能会大打折扣,导致查询速度极慢,严重影响数据库的整体性能。

然而,现有的基数估计方法存在诸多限制。传统的 CE 技术依赖一些简化的假设,往往精准预测复杂查询的基数,尤其是涉及多个表和条件的情况。虽然学习型 CE 模型能提供更好的准确性,但它们的应用却受到训练时间长、需要大数据集以及缺乏系统性基准评估的限制。

为了填这一空白,Google 的研究团队推出了 CardBench,一个全新的基准测试框架。CardBench 包含超过20个真实世界的数据库和数千个查询,远超以往的基准。这使得研究人员能够在各种条件下系统地评估和比较不同的学习型 CE 模型。该基准支持三种主要设置:基于实例的模型、零样本模型和微调模型,适用于不同的训练需求。

CardBench 的设计还包括一系列工具,可以计算必要的数据统计,生成真实的 SQL 查询,并创建用于训练 CE 模型的带注释查询图。

该基准测试提供两组训练数据:一组用于具有多个筛选条件谓词的单个表查询,另一组用于涉及两个表的二进制联接查询。该基准测试包括9125个单表查询和8454个二进制连接查询,适用于其中一个较小的数据集,从而确保为模型评估提供强大且具有挑战性的环境。源自 Google BigQuery 的训练数据标签需要7个 CPU 年的查询执行时间,这凸显了创建此基准测试的重大计算投资。通过提供这些数据集和工具,CardBench 降低了对开发和测试新 CE 模型的研究人员的门槛。

image.png

在使用 CardBench 进行的性能评估中,微调模型的表现尤为突出。虽然零样本模型在应用于看不见的数据集时难以提高准确性,尤其是在涉及联接的复杂查询中,但微调模型可以达到与基于实例的方法相当的准确性,而训练数据要少得多。例如,微调的图形神经网络 (GNN) 模型在二进制连接查询中实现了1.32的中位 q 误差和第95个百分位的 q 误差120,明显优于零样本模型。结果表明,即使有500个查询,微调预训练模型也可以显著提高其性能。这使得它们适用于训练数据可能受限的实际应用。

image.png

CardBench 的推出为学习型基数估计领域带来了新的希望,使研究人员能够更有效地评估和改进模型,从而推动这一重要领域的进一步发展。

论文入口:https://arxiv.org/abs/2408.16170

划重点:

- 📊 CardBench 是一个新的基准测试框架,包含20个真实数据库和数千个查询,支持对学习型基数估计模型的系统评估。

- 🛠️ 该基准提供了计算数据统计、生成 SQL 查询和创建查询图的工具,降低了研究人员的开发门槛。

- 🚀 微调模型在性能评估中表现突出,能够在少量训练数据下达到与传统模型相似的准确性,展现出实际应用的潜力。