Skip to main content
QUICK REVIEW

[论文解读] An End-to-End Learning-based Cost Estimator

Ji Sun, Guoliang Li|arXiv (Cornell University)|Jun 6, 2019
Data Quality and Management参考文献 26被引用 9
一句话总结

该论文提出了一种基于树结构神经网络的首个端到端深度学习成本与基数估算器,可联合估算查询成本与选择性。通过引入基于模式的字符串编码和树池化机制,提升了泛化能力并有效处理复杂谓词,在真实工作负载上显著降低了估计误差,优于先前方法。

ABSTRACT

Cost and cardinality estimation is vital to query optimizer, which can guide the plan selection. However traditional empirical cost and cardinality estimation techniques cannot provide high-quality estimation, because they cannot capture the correlation between multiple columns. Recently the database community shows that the learning-based cardinality estimation is better than the empirical methods. However, existing learning-based methods have several limitations. Firstly, they can only estimate the cardinality, but cannot estimate the cost. Secondly, convolutional neural network (CNN) with average pooling is hard to represent complicated structures, e.g., complex predicates, and the model is hard to be generalized. To address these challenges, we propose an effective end-to-end learning-based cost estimation framework based on a tree-structured model, which can estimate both cost and cardinality simultaneously. To the best of our knowledge, this is the first end-to-end cost estimator based on deep learning. We propose effective feature extraction and encoding techniques, which consider both queries and physical operations in feature extraction. We embed these features into our tree-structured model. We propose an effective method to encode string values, which can improve the generalization ability for predicate matching. As it is prohibitively expensive to enumerate all string values, we design a patten-based method, which selects patterns to cover string values and utilizes the patterns to embed string values. We conducted experiments on real-world datasets and experimental results showed that our method outperformed baselines.

研究动机与目标

  • 解决传统成本与基数估算器的局限性,其无法捕捉多列相关性且需要手动调优。
  • 开发一种统一的、端到端的基于学习的框架,同时估算成本与基数,克服先前基于学习方法的单向聚焦问题。
  • 提升对字符串属性谓词的泛化能力,此类谓词因字符串值稀疏性和高基数而难以嵌入。
  • 设计一种能有效捕捉层次化和树状结构查询计划的模型,实现对复杂查询的稳健估算。
  • 通过批量处理和优化神经网络架构实现高效率,使估算器在真实数据库系统中具备实用性。

提出的方法

  • 该框架使用树结构深度神经网络建模查询计划,其中每个节点代表一个物理算子,并从其子节点学习表示。
  • 将查询特征、元数据(如表大小、选择性)以及谓词信息(包括数值和字符串值)整合到模型中。
  • 针对字符串值,提出一种基于模式的编码方法:不嵌入所有字符串,而是提取代表性模式(如‘%co-production%’)并用于字符串值的嵌入,从而提升泛化能力。
  • 在谓词表示层采用Min-Max池化,相比标准LSTM方法,能更好地捕捉复杂复合谓词。
  • 应用批量评估技术,通过并行处理多个查询来减少推理时间,提升计算效率。
  • 模型通过真实执行数据进行端到端训练,以最小化预测值与实际成本和基数之间的差异。

实验结果

研究问题

  • RQ1深度学习模型能否以端到端方式联合估算查询成本与基数,从而优于传统方法或单向学习方法?
  • RQ2如何在不进行穷举枚举的情况下,有效将高基数字符串谓词嵌入神经网络?
  • RQ3具有Min-Max池化的树结构模型是否在表示复杂查询计划和谓词方面优于标准LSTM模型?
  • RQ4基于规则的字符串模式提取在多大程度上提升了模型的泛化能力和估算准确率?
  • RQ5所提出的模型能否在实际数据库查询优化器中实现高准确率与可接受的效率?

主要发现

  • 在JOB-LIGHT工作负载上,该方法将平均误差从超过50(MSCN)降低至24.9,最大误差从超过1,000降至289,表现出显著改进。
  • 使用树池化和基于规则的字符串模式的TPoolEmbRMCost变体,在成本估算中相比TLSTMHashMCost将平均误差降低2倍、最大误差降低3倍。
  • 采用基于模式的字符串编码的模型(TLSTMEmbNRMCost)相比基于哈希的字符串嵌入,将第99百分位误差降低了99%,展现出极强的泛化能力。
  • 批量处理使推理时间降低一个数量级:TPoolBatch实现每查询3.63ms,而无批量处理的TPool为47.3ms。
  • TPoolEmbRMCost的误差分布高度集中,且与真实执行时间高度吻合;而PostgreSQL和MSCN则表现出严重的高估和高方差。
  • 由于计算量减少和结构表示更优,树池化在推理时间上比LSTM-based谓词建模快50%,在批量模式下快2倍。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。