加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

快1万倍!伯克利提出用深度RL优化SQL查询

发布时间:2018-10-12 16:01:18 所属栏目:编程 来源:AI前线小组
导读:【新产物上线啦】51CTO播客,随时随地,碎片化进修 怎样优化 SQL 毗连是数据库社区数十年来一向在研究的一个大题目。克日,伯克利 RiseLab 发布了一项研究表白,深度强化进修可以被乐成地应用在优化 SQL 毗连上。对付大型的毗连,这项技能的运行速率比传统

数据收罗。要进修 Q 函数,我们起首必要调查已往的执行数据。DQ 可以接管来自任何底层优化器的一系列 (G,c,G’,J)。譬喻,我们可以运行经典的 left-deep 动态筹划(如配景部门所示),并从 DP 表上钩较出一系列“毗连轨迹”。完备轨迹中的元组看起来像是 (G,c,G’,J)=({E,S,T}, join(S,T), {E,ST},110),它代表从初始查询图(状态)开始并将 S 和 T 毗连在一路(举措)的步调。

我们已经行使 J 暗示毗连的估算本钱,但假如数据时从真实的数据库执行网络而来,我们也可以行使现实的运行时。

状态和举措的特性化。因为行使神经收集来暗示 Q(G,c),我们必要将状态 G 和举措 c 作为牢靠长度的特性向量馈送到收集中。DQ 的特性化方案很是简朴:我们行使 1-hot 向量来编码(1)查询图中存在的全部属性的荟萃,包罗模式中的全部属性,(2)毗连左侧的参加属性, (3)毗连右侧的属性。如图 2 所示。 

快1万倍!伯克利提出用深度RL优化SQL查询

图 2:查询及其响应的特性化。我们假设一个包括 Employees、Positions 和 Salaries 三张表的数据库。图中表现了部门毗连和完全毗连。(G,c) 的最终特性向量是 A_G(查询图的属性)、A_L(左侧的属性)和 A_R(右侧的属性)的串联。

固然这个方案很是简朴,但我们发明它具有足够的示意力。必要留意的是,我们的方案(和进修的收集)假设的是一个牢靠的数据库,由于它必要知道确切的属性集和表集。

神经收集实习和筹划。默认环境下,DQ 行使简朴的两层全毗连收集,并行使尺度随机梯度降落举办实习。在完成实习后,DQ 可以接管纯文本的 SQL 查询语句,将其理会为抽象语法树,对树举办特性化,并在每次候选毗连得到评分时挪用神经收集(也就是在算法 1 的步调 2 中挪用神经收集 )。最后,可以行使来自现实执行的反馈按期从头调解 DQ。

评 估

为了评估 DQ,我们行使了最近宣布的 Join Order Benchmark(JOB)。这个数据库由来自 IMDB 的 21 个表构成,并提供了 33 个查询模板和 113 个查询。查询中的毗连相关巨细范畴为 5 到 15 个。当毗连相关的数目不高出 10 个时,DQ 从穷举中网络实习数据。

较量。我们与几个开导式优化器(QuickPick 和 KBZ)以及经典动态筹划(left-deep、right-deep、zig-zag)举办较量。我们对每个优化器天生的打算举办评分,并与最优打算(我们通过穷举得到)举办较量。

本钱模子。跟着新硬件的创新(譬喻 NVRAM)和向无处事器 RDBMS 架构(譬喻 Amazon Aurora Serverless)的转变,我们祈望看到大量新的查询本钱模子可以捕捉差异的硬件特性。为了表现基于进修的优化器可以顺应差异的情形,我们计划了 3 个本钱模子:

  • Cost Model 1(Index Mostly):模仿内存数据库并勉励行使索引毗连。
  • Cost Model 2(Hybrid Hash):仅思量具有内存预算的散列毗连和嵌套轮回毗连。
  • Cost Model 3(Hash Reuse):思量重用已构建的散列表。

从 CM1 到 CM3,本钱示意出更多的非线性,向静态计策提出了挑衅。

我们举办了 4 轮交错验证,确保仅对未呈此刻实习事变负载中的查询举办 DQ 评估(对付每种环境,我们在 80 个查询上实习并测试个中的 33 个)。我们计较查询的均匀次优性,即“本钱(算法打算)/ 本钱(最佳打算)”,这个数字越低越好。譬喻,对 Const Model 1,DQ 均匀间隔最佳打算 1.32 倍。功效如图 3 所示。 

快1万倍!伯克利提出用深度RL优化SQL查询

图 3:差异本钱模子的均匀打算次优性。

在全部本钱模子中,DQ 在没有指数布局的先验常识的条件下可以与最优办理方案一比高下。对付牢靠的动态筹划,环境并非云云:譬喻,left-deep 在 CM1 中发生了精采的打算(勉励行使索引毗连),但在 CM2 和 CM3 中结果没有那么好。同样,right-deep 打算在 CM1 中没有竞争力,但假如行使 CM2 或 CM3,right-deep 打算溘然变得不那么糟糕。必要留意的是,基于进修的优化器比手动计划的算法更强盛,可以顺应事变负载、数据或本钱模子的变革。

另外,DQ 以比传统动态筹划快得多的速率发生了精采的打算(图 4)。

快1万倍!伯克利提出用深度RL优化SQL查询

 

图 4:全部 113 个 JOB 查询的优化器耽误,按查询中的相关数目举办分组。偏差棒暗示均匀值四面的±尺度毛病。共举办了 5 次试验。

在大型毗连机制中,DQ 实现了极大的加快:对付最大的毗连,DQ 的速率是穷举的 10000 倍,比 zig-zag 快 1000 倍,比 left-deep 和 right-deep 列举快 10 倍。机能增益首要来自神经收集提供的富厚的批处理赏罚机遇——对付单个迭代中全部的候选毗连,DQ 针对整个批处理赏罚挪用一次 NN。我们信托,对付这样一个进修优化器来说,这是一个意义深远的机能改造:对付更大的查询或运行在专用加快器(譬喻 GPU、TPU)上时,它将示意出更大的上风。

概 要我们以为深度强化进修很是适实用来办理毗连排序题目。深度强化进修行使数据驱动要领来调解针对特定命据集和事变负载的查询打算,并调查毗连本钱,而不是行使牢靠的开导式。为了选择查询打算,DQ 行使了可以或许在实习时编对态筹划表的压缩版本举办编码的神经收集。

DQ 只是冰山一角,在数据库社区存在剧烈的争论,环绕着怎样将更多的进修(可能说是数据顺应性)纳入到现有体系中。我们但愿我们的事变是实现更智能的查询优化器的第一步。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读