AI4DB
文章平均质量分 93
YannAdams
这个作者很懒,什么都没留下…
展开
-
How Good Are Query Optimizers, Really?【论文内容翻译】
寻找良好的连接顺序问题是数据库领域研究最多的问题之一。图1展示了经典的、基于成本的方法,它可以追溯到System R[36]。为了获得有效的查询计划,查询优化器枚举有效连接顺序的某些子集,例如使用动态规划。使用基数估计作为其主要输入,成本模型然后从语义等效的计划备选方案中选择最便宜的备选方案。理论上,只要基数估计和成本模型准确,该体系结构就能得到最优的查询计划。实际上,基数估计通常是基于简化的假设,如一致性和独立性来计算的。翻译 2023-07-25 20:18:55 · 210 阅读 · 0 评论 -
Neo:A Learned Query Optimizer【论文内容翻译】
面对大量机器学习的成功案例,每个数据库研究人员可能都想知道是否有可能学习一个查询优化器。查询优化器是在数据库系统中实现良好性能的关键,可以将查询执行速度提高几个数量级。然而,今天构建一个好的优化器需要成千上万的人-工程-小时,并且是一门只有少数专家完全掌握的艺术。更糟糕的是,查询优化器需要进行冗长的维护,特别是当系统的执行和存储引擎不断发展时。因此,没有一个免费的开源查询优化器能达到IBM、Oracle或Microsoft提供的商业优化器的性能。翻译 2023-07-24 20:23:46 · 590 阅读 · 0 评论 -
Deep Reinforcement Learning for Join Order Enumeration【论文内容翻译】
确定关系查询的良好连接顺序是数据库系统(例如[6,12,13,18])中研究得最多的问题之一,因为选择的连接顺序对查询性能有重大影响[11]。连接顺序选择的一个主要挑战是枚举一组候选顺序并确定最经济有效的顺序。搜索更大的候选空间增加了找到低成本排序的几率,但代价是花费更多时间进行查询优化。因此,连接顺序枚举器同时寻求最小化所枚举计划的数量和所选计划的最终成本。传统的DBMS采用各种连接枚举策略。例如,System R[18]使用动态规划。翻译 2023-07-19 20:02:35 · 192 阅读 · 0 评论 -
SkinnerDB:Regret-Bounded Query Evaluation via Reinforcement Learning【论文内容翻译】
行为的后果影响其再次发生的可能性”。——B.F.斯金纳估计候选计划的执行成本可能是查询优化中的主要挑战[34]。查询优化器根据粗粒度数据统计和简化的假设(例如,独立谓词)预测成本。如果估计是错误的,查询优化器会选择执行成本按数量级次优的计划。我们介绍SkinnerDB,这是一个全新的数据库系统,为可靠的查询优化而设计。SkinnerDB不维护数据统计,也不使用简化的成本和基数模型。相反,SkinnerDB从零开始学习(接近)最优的左深查询计划,即在执行给定查询期间。翻译 2023-07-19 16:40:30 · 177 阅读 · 0 评论 -
Reinforcement Learning with Tree-LSTM for Join Order Selection【论文内容翻译】
Join order selection (Join order selection, JOS)是一个关键的DBMS优化问题,已经被广泛研究了几十年[1],[26],[32],[36],[38]。传统方法通常基于基数估计和成本模型,使用一些修剪技术搜索所有可能连接顺序的解空间。基于动态规划(DP)的算法[10]通常选择最佳计划,但成本非常高。启发式方法,如GEQO[3]、QuickPick-1000[38]和GOO[4],可以更快地计算计划,但通常产生较差的计划。翻译 2023-07-12 14:30:15 · 277 阅读 · 0 评论 -
Towards a Learning Optimizer for Shared Clouds【论文内容翻译】
所有罪恶的根源,查询优化的阿喀琉斯之踵,是对中间结果大小的估计,称为基数。[27]众所周知,在传统的查询优化器中,差的基数估计会导致不准确[17,26,18],而在大数据系统中,这个问题更加困难。这是由于:(i)大量的数据,分析和收集统计数据非常昂贵,(ii)存在在运行时强加模式的非结构化数据,因此不能先验地分析,以及 (iii)普遍使用嵌入任意应用程序逻辑的自定义用户代码(例如UDFs),导致任意输出基数。翻译 2023-07-11 11:00:58 · 87 阅读 · 0 评论 -
Bao: Making Learned Query Optimization Practical【论文内容翻译】
查询优化是数据库管理系统的一项重要任务。尽管经过数十年的研究[70],查询优化中最重要的元素——基数估计和成本建模——已被证明难以破解[45]。一些工作已经将机器学习技术应用于这些棘手的问题[37,40,44,51,53,59,72,73,76]。虽然所有这些新解决方案都显示出显著的效果,但我们认为,这些技术都还不实用,因为它们存在几个基本问题:Long training time:大多数提出的机器学习技术在对查询性能产生积极影响之前都需要大量不切实际的训练数据。翻译 2023-07-07 19:33:29 · 462 阅读 · 0 评论 -
SkinnerMT: Parallelizing for Efficiency and Robustness in Adaptive Query Processing on ...【论文内容翻译】
传统的查询优化器基于粗粒度数据统计和许多简化的假设来选择连接顺序[34]。通常,这些假设(例如,统一的数据和不相关的查询谓词)并不成立。在这种情况下,查询优化器可能会生成执行成本超过最优值的查询计划。这些长期存在的问题最近促使机器学习用于查询优化[23,25,26,31]。该领域的大部分工作都集中在“内部查询学习”上。这意味着从过去的查询中获得的经验将用于为下一个查询做出更好的优化决策。然而,这样的方法可能会导致“冷启动”问题,并且对新数据或不寻常的查询(例如,引入新的用户定义函数的查询)没有帮助。翻译 2023-06-30 19:35:50 · 69 阅读 · 0 评论 -
Balsa:Learning a Query Optimizer Without Expert Demonstrations【论文内容翻译】
查询优化器是每个数据库和查询引擎中的性能关键组件,它将声明性查询转换为高效的执行计划。这些优化器必须为每个查询导向候选计划的巨大搜索空间,通过利用有关数据的统计信息以足够的准确性对每个计划进行评分。由于这种复杂性,优化器的开发成本很高。人类专家可能会花几个月的时间来编写第一个版本,然后花几年的时间来完善它。例如,PostgreSQL是世界上使用最广泛的数据库之一,其优化器在发布20多年后不断发生变化[6]。由于开发成本高,一些关系系统满足于基于启发式的优化,并推迟构建成熟的基于成本的优化器。翻译 2023-06-20 20:27:50 · 373 阅读 · 0 评论 -
Workload-driven, Lazy Discovery of Data Dependencies for Query Optimization【论文内容翻译】
我们提出了一种方法,可以根据具体的、给定的工作负载有效地确定数据依赖关系,并在查询优化期间应用它们来生成更有效的查询计划,从而提高性能。在应用数据依赖关系进行查询优化时,面临的三个挑战是发现、选择和改变相关依赖关系。我们提出了一个集成的解决方案,通过我们的工作负载驱动、惰性依赖关系发现方法、增量验证和维护技术以及列存储DBMS的概念来解决这些挑战。翻译 2023-06-14 21:04:02 · 82 阅读 · 0 评论 -
LOGER: A Learned Optimizer towards Generating Efficient and Robust Query Execution Plans【论文内容翻译】
查询优化一直是数据库领域的关键问题,因为查询优化的难度和查询执行性能的重要性。为了给每个查询找到一个有效的执行计划,查询优化器必须在一个非常大的搜索空间中进行搜索,我们知道,在这个搜索空间中,寻找最优的连接顺序是一个NP-hard问题[7]。此外,物理算子的选择也会影响性能,使问题更加复杂。因此,目前几乎所有的关系数据库管理系统都采用启发式方法和各种策略来平衡查询优化的复杂性和执行延迟。这些传统的查询优化方法经过不懈的努力,在不同的环境下都实现了稳定的性能。翻译 2023-06-08 21:21:30 · 465 阅读 · 0 评论 -
BASE:Bridging the Gap between Cost and Latency for Query Optimization【论文内容翻译】
查询优化器是数据库管理系统(DBMS)中的一个关键组件,用于为每个给定的SQL查询找到最有效的执行计划。近年来,机器学习(ML)增强DBMS的研究越来越受到关注,并显示出以数据驱动的方式提升数据库性能的优越性[1,9,17]。特别是,强化学习(RL)被应用于生成执行计划,并展示了其在寻找竞争执行计划方面的优势,而不需要启发式方法强化学习以试错的方式训练策略,以最大化/最小化奖励函数的累积回报。当应用于查询优化时,学习的查询优化器根据其当前策略生成执行计划,并检索奖励作为反馈,表示该计划的好坏。翻译 2023-06-06 19:41:05 · 212 阅读 · 0 评论 -
COOOL_ A Learning-To-Rank Approach for SQL Hint Recommendations【论文内容翻译】
查询优化的目标是从庞大的搜索空间中以足够的精度为每个查询选择具有最低延迟的最佳候选计划。查询优化已经研究了几十年[31],并且仍然是一个活跃的研究领域[35]。人们提出了各种基于ML的研究思路:成本建模、基数估计、端到端查询优化等,其中最实用的方法是Bao[23]。Bao是一个利用树卷积神经网络[27]和[33]来推荐SQL提示的查询优化系统。Bao在端到端查询优化的实用性方面取得了显著的进步,但它存在两个继承自以前模型的问题[19,25,32,41,42]。翻译 2023-06-05 15:47:56 · 430 阅读 · 0 评论 -
Leveraging Query Logs and Machine Learning for Parametric Query Optimization【论文内容翻译】
数据库应用程序广泛使用参数化查询,其中使用不同的参数绑定(例如,存储过程)重复执行相同的SQL语句。对于复杂SQL查询,优化每个查询实例(Opt-Always),但会消耗大量CPU和内存资源;另一种方式是,只优化参数化查询的第一个(或用户指定的)查询实例,并缓存该计划以便在后续查询实例中重用(Opt-Once),虽然减少了优化时间,但缓存的计划对后续查询实例可能是次优的。翻译 2023-06-05 11:20:46 · 401 阅读 · 0 评论 -
Lero_ A Learning-to-Rank Query Optimizer【论文内容翻译】
查询优化器是数据库中最重要的角色之一。它的目的是为每个查询选择一个有效的执行计划。提高其性能一直是一个长期存在的问题。最近的研究[32,33,51]用机器学习技术改进了传统的成本模型和计划枚举算法。尽管取得了一些进展,但它们仍然存在固有困难-延迟预测问题所导致的缺陷。在本文中,我们提出了Lero,一个learning-to-rank query optimizer,它具有用于查询优化的新的轻量级pairwise machine learning model。翻译 2023-05-26 10:59:00 · 449 阅读 · 0 评论 -
Cost-based or Learning-based? A Hybrid Query Optimizer forQuery Plan Selection【论文内容翻译】
查询优化是DBMS中一个被广泛研究多年的基本问题[2,34,37,43]。最近提出了基于学习的优化器[21,29 - 31,42,44,48 - 50,53],它利用机器学习技术从过去的经验中学习高质量的计划。例如,DQ [21],ReJoin[30]和RTOS[50]使用强化学习来选择良好的连接顺序。Neo[31]使用Tree-CNN实现了端到端的基于学习的优化器。除了传统的基于成本的优化器外,近年来又提出了基于学习的优化器。这两种类型的优化器各有其局限性和优点。翻译 2023-05-24 17:13:07 · 325 阅读 · 0 评论