2. 司法部 信息中心, 北京 100020
2. Information Center, Ministry of Justice, Beijing 100020, China
开放科学(资源服务)标志码(OSID):
查询优化是许多关系型数据库管理系统以及其他数据库(如图数据库)领域的一个重要课题[1-3]。查询是用户对数据库信息发起的请求,可以是简单快速的查询,也可以是复杂耗时的查询。查询结果是通过访问相关数据库数据并对其进行操作从而产生的用户所需要的信息。由于数据库结构复杂,对于复杂的查询,其执行时间可能根据处理查询方式的不同而存在较大的差异,从几分之一秒到几小时不等。查询优化是一个自动化的过程,其目的是找到通过最少时间来处理给定查询的方式。不同的查询处理策略对应不同的执行时间,为提高查询效率,进行查询优化具有一定的现实意义[4-6]。
在众多数据库查询操作中,连接(JOIN)操作最为费时,其往往涉及多个表之间大量的数据读取,因此,许多查询优化是针对JOIN展开的[7-8]。基数估计是对数据表统计信息进行估计,并将其用于后续优化步骤。对原始数据进行基数估计在大多情况下比较费时,而在样本数据上做基数估计,对查询涉及的数据本身进行抽样,使得原本在大规模数据上进行的基数估计计算变为在较小但足够精确的样本数据上进行基数估计,并通过样本数据上的基数估计结果近似估计出原数据集上的基数,从而大幅减少计算时间。
近年来,许多在单表上的抽样算法相继被提出[9-11],同时,学者们也对一些评估抽样结果优劣的方法与标准进行了研究[9, 12],这些工作大都聚焦在单表数据分布或是与其他表的主外键关系上,针对每一个单表进行最佳抽样率计算[13-14]。但是,假设数据库含有多个数据表,且对于众多数据表的样本临时数据表存在存储限制,即不能对每个数据表做过多抽样,样本总容量有预算上限,那么如何分配每个数据表的抽样大小就成为一个需要解决的问题。此时,需要找到一个合理的样本分配方案,使得在此样本数据上做基数估计的准确率能够在一定标准下以及一定误差范围内尽可能达到最高。
将多个表的抽样率整体看作一个待分配比例的组合,寻找一个最佳抽样率的分配就成了一个连续空间搜索问题,此时擅长连续空间搜索的贝叶斯优化算法可以发挥优势。本文将贝叶斯优化算法应用到数据库抽样中,提出一种面向多表JOIN查询优化的基数估计方法。在多表关系型数据库对样本临时表有整体存储限制时,利用贝叶斯优化算法可以快速搜索出不同表之间抽样样本大小的分配比例,且抽样结果可以达到最优,从而实现查询优化的目的。具体地,如果有一组查询负载涉及多个表之间的JOIN操作,需要将这组查询涉及的所有表进行一定比例的抽样,但抽样样本的总体大小受到限制。此时,将每个表的抽样比例看作一个参数,则整个数据库中所有表的抽样比例形成一个参数组合,所有不超过样本总大小限制的参数组合总体构成参数空间。在一个参数组合对应的抽样方案下,参考文献[12]进行二层抽样做基数估计,得到一个多表整体基数估计准确率。利用贝叶斯优化[15]快速地在参数空间搜索对应基数估计准确率最高的参数组合,即在抽样样本总大小受限的条件下,利用贝叶斯优化算法快速确定对应基数估计准确率最高的多表抽样比例分配方案。
1 问题定义 1.1 多表JOIN查询优化在关系型数据库中,最耗时的一类查询往往涉及许多JOIN操作。不同表之间不同类型(如BroadcastHashJoin、SortMergeJoin)、不同顺序的JOIN往往数据量大不相同,操作代价也存在很大差异。因此,合理地执行计划(如合理的JOIN类型、合理的JOIN顺序)能够大幅优化查询过程,提高查询效率。在查询计划优化器中有一类基于代价的优化器,其根据数据库中数据表上数据统计和代价模型的代价进行估计,计算不同执行计划对应的代价,从而选择最小代价的计划来执行。因此,数据统计结果的精确度会影响基于代价的优化器对执行计划的选择,从而影响查询优化结果。多表JOIN查询优化表示当查询语句中的JOIN操作涉及3张以上的数据表时,数据库管理系统或数据库优化工具根据数据统计信息对JOIN顺序、JOIN方式进行合理规划,从而达到缩减查询开销的目标。
1.2 基数估计本文主要关注基于代价的优化器中的数据统计部分,这一部分通常称作基数估计,其通过数据统计和对数据分布、列的相关性以及连接关系的一些假设,来得到一些中间操作的元组条目数,这些数字会用于代价模型以决定查询计划。理论上讲,只要基数估计准确、后续代价模型估计准确,优化器就能在有限时间内获得全局最优的查询执行计划。
在数据库查询场景下,基数估计指的是对一个操作符产生的结果元组条目数进行估计,这个估计的条目数会用于代价模型预测这一个操作符的操作代价开销,根据操作代价开销的不同,对查询作出不同的物理执行计划,从而达到查询优化的目的。文献[15]指出,在现有的代价模型下,微小的基数估计误差可能会带来最多30%的代价预测误差。文献[16]对多表JOIN复杂查询下传统查询优化器的物理执行计划进行研究,其得到了与文献[15]类似的结论。因此,基数估计结果的准确率会严重影响查询优化的效果。
在数据库查询中,最费时的一类查询往往涉及多个JOIN操作,因此,本文主要关注这一类涉及多表JOIN的查询优化中所需进行的基数估计。多表JOIN涉及多张表之间多个列上的基数估计。在实际的数据库优化中,基数估计包括复杂的计算,本文将对基数估计的计算过程进行简化。基数估计的关键步骤是计算结果表中元组的分类计数,本文将基数估计过程转化为一个GROUP BY+COUNT的查询,以一组特殊设计的查询语句来近似替代单表基数估计进行计算。
定义1(多表基数估计近似查询) 对于一个给定的涉及JOIN的查询(如
SELECT S,COUNT(*)
FROM J
GROUP BY S
对查询结果的估计,包括了结果条目数的估计以及每一条结果中对COUNT(*)结果的估计。需要注意的是,单表基数估计近似查询是JOIN查询基数估计近似查询的一个特例。因此,本文讨论涉及JOIN查询的多表基数估计近似查询。
1.3 基于抽样的多表JOIN查询基数估计图 1所示为基于抽样并面向多表JOIN查询的基数估计问题定义。上文定义的面向多表JOIN查询的基数估计由于要计算连接后的结果表元组条目数,因此当原始数据表规模很大时计算量巨大。为解决该问题,常用的一个策略是对原始数据表进行一定比例的抽样,在抽样数据表上进行基数估计近似查询,然后根据抽样比例再估算原始数据表上做多表JOIN查询的基数估计结果。对于多表JOIN查询,各表上不同的抽样比例会导致JOIN查询在抽样表上做出的基数估计结果准确率不同。因此,对于一组确定的多表JOIN查询,本文目标是确定一组使得基数估计准确率最高的抽样方案。
![]() |
Download:
|
图 1 基于抽样的多表JOIN查询基数估计问题 Fig. 1 Cardinality estimation problem of multitable JOIN query based on sampling |
当限定一个数据库中可以额外存储临时表的空间,即限制数据表可产生的抽样样本表的样本空间时,则必须将有限的样本空间分配给数据库中的每一张需要抽样的数据表,使得每张数据表以一定的抽样率进行样本抽样且样本总和不超过限制的空间大小。在这个空间有限制的总体样本上,本文针对给定的查询负载做基数估计。本文目标是在给定样本空间限制的条件下,找到一种样本抽样在不同数据表上的分配方案,使得查询负载在样本上做出的基数估计准确率最高,即数据库中所有数据表的样本基数估计结果准确率的平均值最大。
2 贝叶斯优化与二层抽样 2.1 贝叶斯优化贝叶斯优化的目标是一个计算代价昂贵的黑盒函数
贝叶斯优化算法是一个迭代执行的过程,
二层抽样是文献[12]在总结目前用于查询优化中数据表JOIN结果基数估计的抽样方法后,提出的一种用以估计两表间查询JOIN结果大小的抽样方法。该文分析了简单独立伯努利抽样(即随机抽样)、关联抽样、端偏抽样(End-biased sampling)的特点与弊端,在此基础上提出了二层抽样方法。
假设需要JOIN的2个表分别为A和B,且在列A.a和B.a上做条件JOIN,
1)第一层抽样。确定JOIN的属性列,并利用一个哈希函数
2)第二层抽样。对于第一层抽样中抽取的属性值,以概率
二层抽样方法考虑了原始数据的分布与连接关系,避免了需要JOIN的两表间数据属性值匹配不均而带来的基数估计误差。二层抽样方法易于操作,仅需遍历一遍数据即可完成,且可以根据人工参数进行调整,使得在不同抽样样本量条件下样本尽可能地保留连接属性值。
3 算法实现本文通过形式化的定义,将多表JOIN查询基数估计问题转化为等价SQL语句的近似查询问题。基于这一转化,本文提出一种面向多表JOIN查询基数估计的最佳数据抽样方案搜索算法。
3.1 数据抽样与基数估计假设有一组(若干条)JOIN查询,需要对这若干条JOIN查询都做出基数估计,本文将对若干条JOIN查询做出的基数估计问题称为基数估计查询负载(下文简称为负载)。在实际应用中,数据库中的数据表条目数通常达百万条之多,若是负载中的查询覆盖到数据库中所有的数据表,那么在原数据上做JOIN查询会是一个数据量巨大的工作。为解决该问题,可以对原数据表进行合理地抽样,然后将负载在抽样后的样本上执行查询,依据结果做基数估计,并用样本上的基数估计来近似原数据表上的基数估计。由于执行的数据表经过了抽样,因此在抽样样本上原始负载的近似基数估计结果也有误差。在不同的抽样率下,基数估计结果也必然不同。因此,需要定义对于确定的负载在抽样样本上做基数统计的结果准确率,具体方法是将样本上做出的基数估计查询结果与实际原始数据上做出的基数估计查询结果进行比较并得出误差。
假设
命题1 对于
证明 不妨设某一基数估计查询涉及2张表
$ J=R\ \mathrm{J}\mathrm{O}\mathrm{I}\mathrm{N}{}_{\mathrm{j}\mathrm{o}\mathrm{i}\mathrm{n}\mathrm{c}\mathrm{o}\mathrm{n}\mathrm{d}\mathrm{i}\mathrm{t}\mathrm{i}\mathrm{o}\mathrm{n}}P $ |
那么JOIN结果
$ J={\sigma }_{\mathrm{j}\mathrm{o}\mathrm{i}\mathrm{n}\mathrm{c}\mathrm{o}\mathrm{n}\mathrm{d}\mathrm{i}\mathrm{t}\mathrm{i}\mathrm{o}\mathrm{n}}(R\times P) $ | (1) |
对R和P分别进行抽样,得到样本数据表
$ J\text{'}={\sigma }_{\mathrm{j}\mathrm{o}\mathrm{i}\mathrm{n}\mathrm{c}\mathrm{o}\mathrm{n}\mathrm{d}\mathrm{i}\mathrm{t}\mathrm{i}\mathrm{o}\mathrm{n}}(R\text{'}\times P\text{'}) $ | (2) |
因为
$ R\text{'}\subseteq R, P\text{'}\subseteq P\Rightarrow R\text{'}\times P\text{'}\subseteq R\times P $ | (3) |
因为
$ J\text{'}\subseteq J $ | (4) |
则对于
$ \forall s\mathrm{在}J\text{'}\mathrm{中}\Rightarrow s\mathrm{在}J\mathrm{中} $ | (5) |
由于基数估计查询结果是GROUP BY后的COUNT(*)结果,因此
$ s\mathrm{在}J\text{'}\mathrm{中}\iff (s, r)\in {C}_{\mathrm{s}\mathrm{a}\mathrm{m}\mathrm{p}\mathrm{l}\mathrm{e}} $ |
$ s\mathrm{在}J\mathrm{中}\iff (s, r\text{'})\in {C}_{\mathrm{r}\mathrm{e}\mathrm{a}\mathrm{l}} $ | (6) |
在式(6)中,
$ \forall s\in S,\mathrm{如}\mathrm{果}\left(s, r\right)\in {C}_{\mathrm{s}\mathrm{a}\mathrm{m}\mathrm{p}\mathrm{l}\mathrm{e}}\Rightarrow $ |
$ \exists \mathrm{唯}\mathrm{一}\mathrm{的}r\text{'}, \mathrm{使}\mathrm{得}(s, r\text{'})\in {C}_{\mathrm{r}\mathrm{e}\mathrm{a}\mathrm{l}} $ |
上述是2张表做JOIN时的情形,同理,可以推广到任意数量的表JOIN时的情形,即当一个JOIN操作是由
$ {J}_{\mathrm{m}\mathrm{u}\mathrm{l}\mathrm{t}\mathrm{i}}={\sigma }_{\mathrm{j}\mathrm{o}\mathrm{i}\mathrm{n}\mathrm{c}\mathrm{o}\mathrm{n}\mathrm{d}\mathrm{i}\mathrm{t}\mathrm{i}\mathrm{o}\mathrm{n}}({R}_{1}\times {R}_{2}\times \cdots \times {R}_{k}) $ |
$ {J}_{\mathrm{m}\mathrm{u}\mathrm{l}\mathrm{t}\mathrm{i}}^{\mathrm{\text{'}}}={\sigma }_{\mathrm{j}\mathrm{o}\mathrm{i}\mathrm{n}\mathrm{c}\mathrm{o}\mathrm{n}\mathrm{d}\mathrm{i}\mathrm{t}\mathrm{i}\mathrm{o}\mathrm{n}}({R}_{1}^{\mathrm{\text{'}}}\times {R}_{2}^{\mathrm{\text{'}}}\times \cdots \times {R}_{{k}}^{\mathrm{\text{'}}}) $ |
同理,
证毕。
由命题1可知:
$ {C}_{\mathrm{s}\mathrm{a}\mathrm{m}\mathrm{p}\mathrm{l}\mathrm{e}}^{\mathrm{\text{'}}}={C}_{\mathrm{s}\mathrm{a}\mathrm{m}\mathrm{p}\mathrm{l}\mathrm{e}}\bigcup \left\{\left(s, 0\right)\right\}, \mathrm{ }\exists {r}_{0}\in {\mathbb{N}}^{+}, \left(s, {r}_{0}\right)\in {C}_{\mathrm{r}\mathrm{e}\mathrm{a}\mathrm{l}} $ |
$ \mathrm{且}\forall r\in {\mathbb{N}}^{+}, (s, r)\notin {C}_{\mathrm{s}\mathrm{a}\mathrm{m}\mathrm{p}\mathrm{l}\mathrm{e}} $ | (7) |
定义2(以样本进行基数估计的准确率) 给定一个JOIN基数估计查询,设原始基数估计查询在原数据表上的结果为
$ \rho =\sum\limits _{(s, r)\in {C}_{{\rm{sample}}}\mathrm{且}(s, r\text{'})\in {C}_{{\rm{real}}}}\frac{1-\frac{|r/p-r\text{'}|}{r\text{'}}}{\left|{C}_{\mathrm{r}\mathrm{e}\mathrm{a}\mathrm{l}}\right|} $ |
2.1节所提抽样方法都是在单表下讨论的,在真实场景中,查询往往包括JOIN操作,这就涉及一个查询语句需要在2张甚至多张数据表上进行查询计算,因此,需要对涉及的2张甚至多张表都进行抽样,而这些表上的抽样肯定相关联,能够用以准确进行基数估计的样本结果不会是相互独立的。因此,对于某一个特定的查询问句,需要对其涉及的所有表都进行一次联合抽样,以实现最准确的基数估计。
定义3(数据表的最佳抽样率) 设数据库中拥有
$ {p}_{i}^{\mathrm{b}\mathrm{e}\mathrm{s}\mathrm{t}}=\frac{\sum\limits _{j=1}^{m}{p}_{ij}}{\sum\limits _{j=1}^{m}{1}_{{p}_{ij}\ne 0}} $ |
通过定义3可以得知,假设在随机抽样策略下要达到最准确的基数估计,则整个数据库所有数据表的抽样样本存储大小之和为
定义4(数据库的整体样本基数估计结果准确率) 设数据库中有
$ {\rho }_{db}=\sum\limits _{i=1}^{n}\frac{{\rho }_{i}}{n} $ | (8) |
由定义4可知,当给定一组抽样率
由定义3可知,当查询负载和抽样样本给定时,数据表的样本基数估计结果准确率容易计算。因此,如果将一组在限定空间大小之内的数据表样本抽样分配方案作为自变量,将此时对于给定的查询负载在样本上的整体基数估计准确率作为应变量,在这2个变量间建立映射关系,那么上述寻找最佳样本抽样分配方案的问题,就可转化为函数最优化搜索问题,则可以引入贝叶斯优化算法进行解决。本文在给定样本总空间大小条件下,将数据库中所有数据表合法的抽样样本组合(即样本总和不超过给定大小的上限)组成整个自变量搜索空间,空间中每一个自变量对应一种合法样本组合
算法1 搜索最佳样本组合方案的贝叶斯优化算法
输入
T:算法最大执行迭代轮数
输出
1.
2.
3.
4.
5.
6.
在上述贝叶斯优化搜索的每一步,当假设了每张数据表的抽样率之后,采用二层抽样方法来抽取样本以用于最终的基数估计。在每一轮迭代中,在贝叶斯优化算法推荐的抽样比例下做二层抽样以估算基数估计结果,并按式(8)计算基数估计准确率,将其与历史最优记录进行比较,若该抽样比例方案下基数估计准确率有所提高,则更新历史最优记录。整体算法流程如图 2所示。
![]() |
Download:
|
图 2 面向多表JOIN查询优化的基数估计方法流程 Fig. 2 Procedure of cardinality estimation method for multitable JOIN query optimization |
原始贝叶斯优化算法在一次迭代中用高斯过程搜索黑盒函数最值点的时间复杂度为
在本次实验中,采用TPC-H生成了1 GB的数据集,并选取22个官方查询模板查询语句中的12个查询模板语句(这12个模板均含有多表JOIN查询,符合本文讨论的范畴),构建查询负载并进行优化。其中,问句均涉及2张及2张以上的表的JOIN,并且查询返回时以某一列或某几列做分组(GROUP BY)后的计数(COUNT)作为结果呈现。所有12个查询问句共涉及数据库中的8张数据表,以这种类型的查询问句来模拟数据库的查询优化器在分析用户真实查询问句后得出问句涉及具体哪些数据表(对应实验中查询问句的JOIN部分),以及获取到下一步执行计划优化所需基数估计的列(对应实验中查询问句的GROUP BY部分)。因此,实验中的查询负载事实上是模拟了真实场景中查询优化器分析需要做何种基数估计的这一步骤。
4.2 误差率对比实验本文设定允许产生的样本总大小为原始数据大小的0.01%~5%不等,利用贝叶斯优化算法搜索20步,记录搜索到的8张表上的最佳抽样率组合以及对应的数据库抽样基数估计误差率的最小值。对于选定的抽样率,以随机抽样或二层抽样的方法重复10次实验并取最佳结果,同样地,利用随机搜索算法搜索20步,记录8张表上的最佳抽样率组合以及对应的数据库抽样基数估计误差率的最小值。实验结果如图 3所示。
![]() |
Download:
|
图 3 各算法在不同抽样比例下的基数估计误差率 Fig. 3 Cardinality estimation error rate of each algorithm under different sampling proportion |
分析图 3可知,对于各表在抽样大小受限条件下的最优抽样率分配方案,采用二层抽样方法总是优于随机抽样方法,而在相同的抽样样本比例限定下(如0.1%),采用贝叶斯优化算法确定的最优样本分配方案在有限步骤内(或有限时间内)总是要比随机搜索确定的最优样本分配方案对应基数估计的误差率要小。在抽样率比例上限为0.01%和5%条件下,采用贝叶斯优化算法得到的基数估计误差率比随机搜索算法得到的基数估计误差率分别降低60.2%和54.8%。
4.3 搜索效率对比实验本文设计实验来证明贝叶斯优化算法在解决面向多表JOIN查询优化基数估计问题上的高效性。通过TPC-H产生1 GB原始数据,并设置允许产生的各表样本总大小分别为原始数据的0.01%、0.05%、0.1%、0.5%和1%,分别使用随机搜索和贝叶斯优化算法来确定各表的最优抽样率比例分配方案,抽样方法均采用二层抽样,记录历史最低基数估计误差率,直到历史最低基数估计误差率在10步迭代内降低不超过1%,则可认为搜索到的最优抽样率比例分配收敛,记录随机搜索和贝叶斯优化算法的收敛时间,每一种抽样比例下进行20次实验取平均值,结果如图 4所示。
![]() |
Download:
|
图 4 不同抽样比例下搜索到最优抽样分配方案的收敛时间 Fig. 4 Convergence time of searching the optimal sampling allocation scheme under different sampling proportion |
分析图 4可知,在不同的抽样数据规模下,利用贝叶斯优化算法搜索最优抽样分配方案时,收敛时间少于随机搜索算法。因此,贝叶斯优化算法在解决面向多表JOIN查询优化的基数估计问题时具有高效性。
5 结束语本文提出一种面向多表JOIN查询优化的基数估计方法。对于一组给定的查询负载,需要在查询优化前对其进行基数估计,而对于庞大的原始数据,又需要在基数估计前进行样本总大小有限的多表联合抽样。本文利用贝叶斯优化算法快速搜索多张数据表之间可能的抽样样本比例分配组合,采用二层抽样方法在有限时间内确定多表联合抽样率分配方案,使得给定查询负载平均基数估计结果误差率最小,从而实现精准且快速的基数估计。实验结果表明,该方法能有效提升涉及多表JOIN复杂查询的基数估计计算效率,且误差率相比随机搜索算法大幅降低,实现了查询优化的效果。下一步考虑将元学习、强化学习等算法应用于查询优化与基数估计任务中,结合传统基于数据统计的计算方法与基于强化学习的模型,以提高数据查询效率并提升数据库优化的整体水平。
[1] |
ZHOU X H, SUN J, LI G L, et al. Query performance prediction for concurrent queries using graph embedding[J]. Proceedings of the VLDB Endowment, 2020, 13(9): 1416-1428. DOI:10.14778/3397230.3397238 |
[2] |
LI G L, ZHOU X H, LI S F, et al. QTune: a query-aware database tuning system with deep reinforcement learning[J]. Proceedings of the VLDB Endowment, 2019, 12(12): 2118-2130. DOI:10.14778/3352063.3352129 |
[3] |
PAVLO A, ANGULO G, ARULRAJ J, et al. Self-driving database management systems[EB/OL]. [2021-04-05]. https://www.db.cs.cmu.edu/papers/2017/p42-pavlo-cidr17.pdf.
|
[4] |
CHAIKEN R, JENKINS B, LARSON P, et al. SCOPE: easy and efficient parallel processing of massive data sets[J]. Proceedings of the VLDB Endowment, 2008, 1(2): 1265-1276. DOI:10.14778/1454159.1454166 |
[5] |
李国良, 周煊赫. 面向AI的数据管理技术综述[J]. 软件学报, 2021, 32(1): 21-40. LI G L, ZHOU X H. Survey of data management techniques for artificial intelligence[J]. Journal of Software, 2021, 32(1): 21-40. (in Chinese) |
[6] |
陈泽, 丁琳琳, 宋宝燕, 等. 大规模动态图中概率游走约束的节点相似Top-k查询方法[J]. 计算机工程, 2021, 47(1): 72-78, 86. CHEN Z, DING L L, SONG B Y, et al. Node similarity Top-k query method with probabilistic walk constraint in large-scale dynamic graphs[J]. Computer Engineering, 2021, 47(1): 72-78, 86. (in Chinese) |
[7] |
LAN H, BAO Z F, PENG Y W. A survey on advancing the DBMS query optimizer: cardinality estimation, cost model, and plan enumeration[J]. Data Science and Engineering, 2021, 6(1): 86-101. DOI:10.1007/s41019-020-00149-7 |
[8] |
CORMODE G. Synopses for massive data: samples, histograms, wavelets, sketches[J]. Foundations and Trends in Databases, 2011, 4(1/2/3): 1-294. |
[9] |
VENGEROV D, MENCK A C, ZAIT M, et al. Join size estimation subject to filter conditions[J]. Proceedings of the VLDB Endowment, 2015, 8(12): 1530-1541. DOI:10.14778/2824032.2824051 |
[10] |
ESTAN C, NAUGHTON J F. End-biased samples for join cardinality estimation[C]//Proceedings of the 22nd International Conference on Data Engineering. Washington D. C., USA: IEEE Press, 2006: 20-25.
|
[11] |
GANGULY S, GIBBONS P B, MATIAS Y, et al. Bifocal sampling for skew-resistant join size estimation[C]//Proceedings of 1996 ACM SIGMOD International Conference on Management of Data. New York, USA: ACM Press, 1996: 17-22.
|
[12] |
CHEN Y, YI K. Two-level sampling for join size estimation[C]//Proceedings of 2017 ACM International Conference on Management of Data. New York, USA: ACM Press, 2017: 123-134.
|
[13] |
LI F, WU B, YI K, et al. Wander join and XDB: online aggregation via random walks[J]. ACM SIGMOD Record, 2017, 46(1): 33-40. DOI:10.1145/3093754.3093763 |
[14] |
LIPTON R J, NAUGHTON J F. Query size estimation by adaptive sampling[J]. Journal of Computer and System Sciences, 1995, 51(1): 18-25. DOI:10.1006/jcss.1995.1050 |
[15] |
LOHMAN G. Is query optimization a "solved" problem? [EB/OL]. [2021-04-05]. https://wp.sigmod.org/?p=1075.
|
[16] |
LEIS V, GUBICHEV A, MIRCHEV A, et al. How good are query optimizers, really?[J]. Proceedings of the VLDB Endowment, 2015, 9(3): 204-215. DOI:10.14778/2850583.2850594 |
[17] |
MOCKUS J, TIESIS V, ZILINSKAS A. The application of Bayesian methods for seeking the extremum[J]. Towards Global Optimisation, 1978, 2(2): 117-129. |
[18] |
BROCHU E, CORA V M, FREITAS N D. A tutorial on Bayesian optimization of expensive cost functions, with application to active user modeling and hierarchical reinforcement learning[EB/OL]. [2021-04-05]. http://haikufactory.com/files/bayopt.pdf.
|
[19] |
SNOEK J, LAROCHELLE H, ADAMS R P. Practical Bayesian optimization of machine learning algorithms[C]//Proceedings of Annual Conference on Neural Information Processing System. Cambridge, USA: MIT Press, 2012: 2960-2968.
|
[20] |
JONES D, SCHONLAU M, WELCH W. Efficient global optimization of expensive black-box functions[J]. Journal of Global Optimization, 1998, 13(4): 455-492. DOI:10.1023/A:1008306431147 |
[21] |
RASMUSSEN C E, WILLIAMS C K I. Gaussian processes for machine learning[EB/OL]. [2021-04-05]. https://courses.cs.washington.edu/courses/cse591f/08au/GroupPapers/GPfML-Ch2.pdf.
|
[22] |
SHAHRIARI B, SWERSKY K, WANG Z Y, et al. Taking the human out of the loop: a review of Bayesian optimization[J]. Proceedings of the IEEE, 2016, 104(1): 148-175. DOI:10.1109/JPROC.2015.2494218 |
[23] |
LAN G J, TOMCZAK J M, ROIJERS D M, et al. Time efficiency in optimization with a Bayesian-Evolutionary algorithm[J]. Swarm and Evolutionary Computation, 2022, 69: 100970. DOI:10.1016/j.swevo.2021.100970 |