一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种面向不同连接形状的复杂连接负载生成方法及系统与流程

2022-12-19 22:39:03 来源:中国专利 TAG:
1.本发明属于分析型数据库、负载生成
技术领域
:,涉及一种面向不同连接形状的复杂连接负载生成方法及系统。
背景技术
::2.分析型数据库管理系统主要用于处理联机分析负载(olap),被广泛应用于金融分析、销售业务分析、市场管理等场景。olap负载多为复杂的多表连接查询,此类查询为查询优化器带来挑战。查询优化器是查询引擎中最核心的部分,其旨在选出最优的查询执行计划交给执行器执行。3.现代查询优化器基本分为三个模块:计划枚举、基数预估、代价模型,为了获取的一个最佳的查询执行计划,查询优化器利用动态规划等方法枚举有效连接顺序的子集,使用预估的基数作为代价模型的输入,从语义等价的候选计划中选出代价最小的计划。然而,这一优化过程是一个np难问题1.。对于计划枚举,由于连接操作的交换性和结合性,随着连接表数量的增加,搜索空间的大小会呈指数级增长,如考虑左深树、右深树和浓密树时,n个表连接的搜索空间高达无法在多项式时间内解决2.;对于基数预估,由于真实应用数据分布的倾斜度、数据之间的复杂关联关系、复杂的谓词、多表连接等因素,查询优化器的基数预估模块很难获得准确的基数预估3.;对于代价模型,将cpu、i/o等成本与权重及基数相结合计算算子的成本,使用的权重参数是由优化器设计者设置的,没有明确的方法来确定成本权重的理想值,因此也会带来误差4.。4.由于查询优化器的重要性和优化难度,急需有效的评测负载评估查询优化器的性能,帮助优化器找到不足之处并进行提升。常见的标准评测基准比如starschemabenchmark5.、tpc-h6.、tpc-ds7.主要用于数据库查询执行的整体性能评测,其数据分布为均匀分布,而真实应用场景中的数据往往为非均匀分布,且有较大的数据倾斜度;并且其负载仅涉及chain、tree以及star类型的简单连接形状。因此,这些评测基准无法很好的用于基数预估评估和连接顺序选择评估。基于imdb数据集8.的joinorderbenchmark(job)9.可用于评测基数预估、连接顺序选择,但是其数据集不可扩展,数据倾斜度固定。虽然它包含相对复杂的连接负载,但都为cyclic类型,因此无法针对某一特定连接形状做专项评测,且缺乏连接顺序选择的评测指标。许多工作[10-12]会使用job的子集job-light进行基数预估的评测,它基于简化的imdb数据集,仅包含70个查询,且均为连接数小于等于5的star型负载。针对基数预估的评测基准有stats-ceb[13]和imdb-ceb[14],分别采用真实的数据集stats和imdb,人工构建查询负载。它们缺乏随机可控的连接数目和丰富的连接形状。[0005]综上所述,现有的评测基准负载缺乏随机可控的连接数目和多样的连接形状,无法为查询优化器评估提供丰富的测试场景而有效地评估查询优化性能。利用这些负载得到的评测结果可能缺乏现实意义。技术实现要素:[0006]数据库查询优化器是查询引擎中最核心的部分。为了有效地评估查询优化器的性能,本发明的目的是提供一种面向不同连接形状的复杂连接负载生成方法及系统,能够自动化生成适用于评估查询优化器的具有不同连接形状的复杂连接负载,并且保证查询有效性,有效性是指查询结果不为空。[0007]本发明提出的面向不同连接形状的复杂连接负载生成方法,包括以下步骤:[0008]步骤一:连接图生成:根据用户定义的参与连接表数目、查询的连接形状和各表间的参照关系(见定义1),采用适用于不同连接形状的连接模板生成方法生成具有不同连接形状的负载模版。[0009]定义1参照关系设fk是表t1的一个或一组属性,但不是表t1的主键,pk是表t2的主键(primarykey)。如果fk与pk相对应,则称fk是t1的外键(foreignkey)。表t1和t2之间存在参照关系t1.fk=t2.pk,并称表t1为参照表,表t2为被参照表。[0010]步骤二:过滤谓词生成:根据连接图,为模板中的每张表随机生成过滤谓词。[0011]步骤三:参数实例化:通过基于结果导向的参数实例化方法为过滤谓词填参,使查询结果不为空,生成复杂连接负载。[0012]步骤一和步骤三是本发明最核心的发明点。目前,没有一个现有的标准评测基准包含所有7种连接形状。例如,starschemabenchmark5.、tpc-h6.、tpc-ds7.采用人工合成负载,负载中仅涉及chain、tree和star的简单连接形状。joinorderbenchmark(job)9.基于真实数据集imdb设计的负载都为cyclic类型,它们的平均连接数目为8;job的子集job-light仅包含连接数小于等于5的star类型负载。除此之外,这些现有方法中的评测基准负载的过滤谓词已固定,无法进行扩展。而真实应用负载尽管拥有丰富的连接数目、连接形状和过滤谓词,但需要大量的人力对大量负载进行整理与分类,并且该工作对数据库知识有着很大的要求。与此同时,现有的负载生成工具也都无法生成大量拥有随机可控的连接数目、丰富的连接形状和多样的过滤谓词的负载。除此之外,现有负载生成工具不能同时满足语法语义正确性和查询有效性(即查询结果不为空)。例如,rgas[15]采用随机的方式基于给定模式生成大量的负载,并使用差异测试的方法对sqlserver数据库进行功能测试,但是rags生成的负载大约有50%的查询的执行结果为空,造成了测试资源很大的浪费。afl[16]生成的查询语句中只有30%语法正确,其中语义正确的查询比例不到5%。sqlsmith[17]通过随机生成抽象语法树,并将抽象语法树转换成sql语句从而随机生成大量语法正确的查询,但是它无法保证生成查询语义正确,也无法保证查询有效。sparkfuzz[18]通过模糊测试的方法随机生成测试负载,其使用递归的负载生成模型随机选择查询关键字进行负载生成,在此过程中忽略了过滤谓词中的参数选择对于查询结果的影响,因此sparkfuzz生成负载的执行结果很可能为空。artemis[19]能够保证负载的语法正确性和语义正确性,但只支持生成chain类型的负载且无法保证查询结果不为空。同时,artemis依赖外部的mathematica工具进行查询结果的生成,该工具存在许多使用限制并且调用开销大。因此,现有评测基准、真实应用的负载以及现有的负载生成工具都无法满足为查询优化器评估提供丰富的测试场景需求。而本发明提出的面向不同连接形状的复杂连接负载生成方法中的步骤一和步骤三很好地解决了上述的问题,能够自动化生成大量拥有随机可控的连接数目、丰富的连接形状和多样的过滤谓词的负载,且保证负载满足语法正确性、语义正确性和查询有效性。本方法的时间复杂度为o(n),其中n为参与连接的表数目,通常情况下n不是很大,如job负载中n最大为16。[0013]步骤一中,所述的适用于不同连接形状的连接模板生成方法根据用户指定的数据库模式规定的各表的参照关系、参与连接的表数量和查询连接图的形状,分别通过加点操作和加边操作为初始为空的连接图添加新节点(表)和新边(连接条件)。模式(schema)是数据库中全体数据的逻辑结构和特征的描述,包含了各表的规模、各表属性列的数据类型、各表间的参照关系等描述。加点操作即向连接图中随机添加一张符合连接形状要求的表作为节点,加边操作即为连接图中的两张表增加连接条件作为连接边。连接条件包括主键-外键连接(pk-fkjoin)和外键-外键连接(fk-fkjoin),如主键-外键连接条件t1.pk=t2.fk表示通过表t1和t2的主外键参照将两表连接起来,外键-外键连接条件t1.fk=t2.fk成立要求表t1和t2分别与另一张表t3存在参照关系t1.fk=t3.pk和t2.fk=t3.pk,通过三张表间的主外键参照关系的传递将t1和t2连接起来。本方法支持的连接形状包括链式(chain)、星型(star)、树型(tree)、环形(cycle)、含环形(cyclic)、网格状(grid)、集团(clique)等。[0014]步骤二中,所述过滤谓词指sql查询语句中选择(select)运算中的过滤条件,如从student表中选出年龄大于20的元组σage>20(student),其中表达式age>20即student表上的过滤谓词。[0015]本发明生成的过滤谓词包括单属性过滤谓词和多属性联合过滤谓词。单属性过滤谓词指过滤表达式中只包含一个属性列,如t.col>p(只涉及表t的col属性列);多属性联合过滤谓词指过滤表达式中包含两个及以上的属性列,如t.col1 t.col2<p(涉及表t的col1属性列和col2属性列)。该步骤过滤谓词中涉及的属性列以及表达式符号为随机生成;且该步骤只生成未实例化的参数p,未实例化指参数p仅仅是个抽象符号而没有具体值,步骤三将为参数p赋值。[0016]步骤三中,所述基于结果导向的参数实例化为过滤谓词填参,即为步骤二中生成的过滤谓词中的参数p赋值(如令p=100)。由主键到属性列的映射函数以及连接条件能够确定性得到过滤谓词参数的取值范围,从取值范围内随机选择合理的参数,即可使经过填参的过滤谓词有效,确保查询无空值返回。其中,主键到属性列的映射函数指属性列的值以主键为自变量通过生成函数映射得到,如某张表的主键x∈[0,n],其属性列col的生成函数为f(x),则主键x对应的col值为y=f(x),其中y∈{y|y=f(x),x∈[0,n]}。[0017]本发明还提供了实现上述方法的系统,所述系统包括连接图生成模块、过滤谓词生成模块和参数实例化模块。[0018]具体的,所述连接图生成模块以用户定义的数据库模式、参与连接表数目、查询连接形状等作为输入,采用适用于不同连接形状的连接模板生成方法,根据各表间的参照关系采样生成具有不同连接形状的负载模版。如数据库中共有5张表a、b、c、d、e,其间的参照关系有a.fk=b.pk,a.fk=c.pk,b.fk=d.pk,d.fk=c.pk。若需要生成3表连接的chain连接,则该模块使用加点操作和加边操作随机选择能够形成chain类型的3张表及连接条件,如选择表a、b、c以及连接条件a.fk=b.pk,a.fk=c.pk,最终得到chain连接模板即为“selectcount(*)froma,b,cwherea.fk=b.pkanda.fk=c.pk”;若需要生成4表连接的cycle连接,则该模块使用加点操作和加边操作随机选择能够形成cycle类型的4张表及连接条件,如选择表a、b、c、d以及连接条件a.fk=b.pk,a.fk=c.pk,b.fk=d.pk,d.fk=c.pk,最终得到的cycle连接模板即为“selectcount(*)froma,b,c,dwherea.fk=b.pkanda.fk=c.pkandb.fk=d.pkandd.fk=c.pk”。[0019]所述过滤谓词生成模块为参与连接的每张表随机生成多样的过滤谓词。在每张表上,该模块根据表的属性列随机生成一个或多个过滤谓词(包括单属性过滤谓词和多属性联合过滤谓词)。[0020]所述参数实例化模块通过基于结果导向的参数实例化方法为过滤谓词填参,使查询结果不为空以得到有效的查询负载。[0021]本发明还提供了上述负载生成方法,和/或负载生成系统在复杂连接负载生成中的应用。[0022]本发明是一种面向不同连接形状的复杂连接负载生成方法及系统,可以生成大规模丰富多样且有效的复杂连接负载,为查询优化器评估提供丰富的测试场景,帮助数据库管理员有效地评估查询优化性能。[0023]本发明的有益效果包括:负载多样性、负载有效性。[0024](一)负载多样性:负载拥有随机可控的连接数目、丰富的连接形状和多样的过滤谓词,能够为查询优化器评估提供丰富的测试场景。现有常见的标准评测基准比如starschemabenchmark5.、tpc-h6.、tpc-ds7.的负载仅涉及chain、tree和star的简单连接形状,joinorderbenchmark(job)9.的负载都为cyclic类型,它们的平均连接数目为8;job的子集job-light仅包含连接数小于等于5的star类型负载。并且这些评测基准负载的过滤谓词已固定,无法进行扩展。而真实应用负载尽管拥有丰富的连接数目、连接形状和过滤谓词,但需要大量的人力对大量负载进行整理与分类,并且该工作对数据库知识有着很大的要求。因此,现有评测基准和真实应用的负载都无法满足为查询优化器评估提供丰富的测试场景需求。本发明能够自动化生成拥有随机可控的连接数目、丰富的连接形状和多样的过滤谓词的负载。[0025](二)负载有效性:所有查询都满足语法正确性和语义正确性;基于结果导向的参数实例化方法保证所有算子的中间结果不为空,最终确保查询无空值返回。现有的负载生成工具中,rgas[15]生成的负载大约有50%的查询的执行结果为空,造成了测试资源很大的浪费。afl[16]生成的查询语句中只有30%语法正确,其中语义正确的查询比例不到5%。sqlsmith[17]能够随机生成大量语法正确的查询,但是它无法保证生成查询语义正确,也无法保证查询有效。sparkfuzz[18]没有考虑到过滤谓词中的参数选择对于查询结果的影响,因此sparkfuzz生成负载的执行结果很可能为空。artemis[19]能够保证负载的语法正确性和语义正确性,但不能保证查询结果不为空,同时依赖外部的mathematica工具进行查询结果的生成,该工具存在许多使用限制并且调用开销大。本发明能够自动化生成大量满足语法正确性和语义正确性且查询结果不为空的有效负载。附图说明[0026]图1为本发明负载生成系统的系统架构图。[0027]图2为本发明中涉及的连接图的不同形状示意图。[0028]图3为本发明中涉及的chain类型连接的示例图。[0029]图4为本发明中涉及的star类型连接的示例图。[0030]图5为本发明中涉及的tree类型连接的示例图。[0031]图6为本发明中涉及的cyclic类型连接的示例图。[0032]图7为本发明实施例中基于结果导向的参数实例化示例图。具体实施方式[0033]结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发明没有特别限制内容。[0034]本发明提出的面向不同连接形状的复杂连接负载生成方法,包括以下步骤:[0035]步骤一:连接图生成:根据用户定义的参与连接表数目、查询的连接形状和各表间的参照关系,采用适用于不同连接形状的连接模板生成方法生成具有不同连接形状的负载模版。适用于不同连接形状的连接模板生成方法根据用户指定的数据库模式、参与连接的表数量和查询连接图的形状,分别通过加点操作和加边操作为初始为空的连接图添加新节点(表)和新边(连接条件)。加点操作即向连接图中随机添加一张符合连接形状要求的表作为节点,加边操作即为连接图中的两张表增加连接条件作为连接边。本方法支持的连接形状包括链式(chain)、星型(star)、树型(tree)、环形(cycle)、含环形(cyclic)、网格状(grid)、集团(clique)等。[0036]步骤二:过滤谓词生成:根据连接图,为模板中的每张表随机生成过滤谓词。本发明生成的过滤谓词包括单属性过滤谓词和多属性联合过滤谓词。单属性过滤谓词指过滤表达式中只包含一个属性列,如t.col>p(只涉及表t的col属性列);多属性联合过滤谓词指过滤表达式中包含两个及以上的属性列,如t.col1 t.col2<p(涉及表t的col1属性列和col2属性列)。该步骤过滤谓词中涉及的属性列以及表达式符号为随机生成;且该步骤只生成未实例化的参数p,未实例化指参数p仅仅是个抽象符号而没有具体值,步骤三将为参数p赋值。[0037]步骤三:参数实例化:通过基于结果导向的参数实例化方法为过滤谓词填参,即为步骤二中生成的过滤谓词中的参数p赋值(如令p=100),该步骤重点是保证查询结果不为空。由主键到属性列的映射函数以及连接条件能够确定性得到过滤谓词参数的取值范围,从取值范围内随机选择合理的参数,即可使经过填参的过滤谓词有效,确保查询无空值返回。其中,主键到属性列的映射函数指属性列的值以主键为自变量通过生成函数映射得到,如某张表的主键x∈[0,n],其属性列col的生成函数为f(x),则主键x对应的col值为y=f(x),其中y∈{y|y=f(x),x∈[0,n]}。[0038]本发明的实现包括以下模块:[0039]连接图生成模块:以用户定义的数据库模式、参与连接表数目、查询连接形状等作为输入,采用适用于不同连接形状的连接模板生成方法,根据各表间的参照关系采样生成具有不同连接形状的负载模版。[0040]过滤谓词生成模块:为参与连接的每张表随机生成多样的过滤谓词。在每张表上,该模块根据表的属性列随机生成一个或多个过滤谓词(包括单属性过滤谓词和多属性联合过滤谓词)。[0041]参数实例化模块:通过基于结果导向的参数实例化方法为过滤谓词填参,使查询结果不为空以得到有效的查询负载。[0042]基本架构[0043]基于上述的问题定义,系统的输入包含一个用户定义的配置文件;系统的输出为查询负载,查询负载输出后存储在对应的数据库中。基本架构主要包含三个模块,分别是连接图生成模块、过滤谓词生成模块和参数实例化模块,如图1所示。[0044]连接图生成采用适用于不同连接形状的连接模板生成方法,根据各表间的参照关系采样生成具有不同连接形状的负载模版。图2展示了本系统支持的7种连接形状。[0045]chain类型中的表按顺序链式连接,在实际应用中很常见,如查询选修了“math”课程的学生的详细信息,对应sql语句为“selectstudent.*fromstudentass,courseasc,scwheres.sno=sc.snoandc.cno=sc.cnoandc.cname=′math′”,该查询的连接图如图3所示。[0046]star类型常见于数据仓库应用中,此类查询中的表分为一张事实表和多张维度表。事实表是数据仓库中的中央表,存储有事实记录的表,如交易记录、销售明细、系统日志等;维度表用于保存维度的属性值,即事实表中属性的相关详细信息,如日期维度表、产品维度表、用户维度表等。star类型可以看成将多张维度表连接到中央事实表。如查询购买产地为“shanghai”的商品号为“20220111”的商品的客户详细信息,对应sql语句为“selectcustomer.*fromorderaso,customerasc,itemasi,regionasrwhereo.cno=c.cnoando.ino=i.inoando.rno=r.rnoandr.rname='shanghai’andi.ino='20220111’”,其中order表为中央事实表,存储销售记录,其余表为维度表。该查询对应的连接图如图4所示。[0047]tree类型可以看成是chain类型和star类型的混合类型,在实际应用中也是很常见的。如查询客户号“01”的客户购买的商品中供应商为“xx”的商品的零件信息,对应sql语句为“selectpart.*fromorderaso,partasp,supplierass,customerasc,itemasiwhereo.cno=c.cnoando.ino=i.inoandp.pno=i.pnoands.sno=i.snoandc.cno='01’andi.ino='22’ands.sname='xx’”,该查询对应的连接图如图5所示。[0048]chain、star、tree类型是不存在环的形状。cycle、cyclic、clique、grid类型都存在环,常见于联机分析处理场景中,这些查询多用于涉及大量表的复杂的统计分析、决策支持等。cycle类型中所有表连接形成一条环路;cyclic类型的连接图中至少存在一条环路;clique类型查询中的任意两张表之间都存在一个连接条件;grid类型呈现网格形状,每张表都至少与另外两张表存在参照关系。其中cyclic类型最为常见,以cyclic为例,如job负载(job负载是从真实应用场景imdb数据集上的负载抽象出来的)中的q13用于查询美国公司制作的电影的排名和发行日期,对应的sql语句如下:[0049]“selectmin(cn.name)asproducing_company,min(miidx.info)asrating,min(t.title)asmoviefromcompany_nameascn,company_typeasct,info_typeasit,info_typeasit2,kind_typeaskt,movie_companiesasmc,movie_infoasmi,movie_info_idxasmiidx,titleastwherecn.country_code=′[us]′andct.kind=′productioncompanies′andit.info=′rating′andit2.info=′releasedates′andkt.kind=′movie′andmi.movie_id=t.idandit2.id=mi.info_type_idandkt.id=t.kind_idandmc.movie_id=t.idandcn.id=mc.company_idandct.id=mc.company_type_idandmiidx.movie_id=t.idandit1.id=miidx.info_type_idandmi.movie_id=miidx.movie_idandmi.movie_id=mc.movie_idandmiidx.movie_id=mc.movie_id”,该查询的连接图如图6所示,图中共8张表参与连接,包含4个环。[0050]连接模板生成算法根据模式规定的各表的参照关系、参与连接的表数量和查询连接图的形状,分别通过加点操作和加边操作为初始为空的连接图添加新节点(表)和新边(连接条件)。加点操作即向连接图中随机添加一张符合连接形状要求的表作为节点,加边操作即为连接图中的两张表增加连接条件作为连接边。chain、star、tree、cycle类型每次执行一次加点操作和一次加边操作;cyclic类型每次执行一次加点操作或一次加边操作;grid类型每次执行两次加点操作和三次加边操作;clique类型每次执行一次加点操作和n-1次加边操作,n为连接图中已有的结点数目。特别的,规定加点操作添加的结点要满足:对于chain类型,该结点与已生成连接图中某个度为1的结点存在连接条件;对于star类型,该结点与己生成连接图中的中央事实表存在连接条件;对于grid类型,该结点与已生成连接图中度为2的某个结点存在连接条件;对于clique类型,该结点与已生成连接图中的每个结点都存在连接条件。具体算法如下:[0051][0052]接着,过滤谓词生成模块为生成的连接图模板中的表随机生成过滤谓词;然后,由参数实例化模块为过滤谓词填参。由主键到属性列的映射函数以及连接条件能够确定性得到过滤谓词参数的取值范围,再从取值范围内随机选择合理的参数,即可使经过填参的过滤谓词有效,确保查询无空值返回。图7展示了基于结果导向的参数实例化的一个示例。图中有两张表t1和t2,其中t1的外键fk参照t2的主键pk,假设在表t2上随机生成的过滤谓词为t2.col>p,此时需要确定参数p的取值。已知表t1的主键范围是[0,100],t1主键到外键fk的生成函数为f1(x)=3*x 1,则t1.fk的值域为[1,301];又已知t1的外键fk参照t2的主键pk,即t1.fk=t2.pk,则t2.pk的可取值范围也为[1,301];然后通过t2主键到属性列col的生成函数f2(x)=2*x 50,得到t2.col的可取值范围为[52,652](图中阴影部分);最终得到过滤谓词t2.col>p的参数p可取值范围为[52,652],从中随机取一值实例化参数p,如t2.col>100,即可得到有效的过滤谓词使查询结果不为空。[0053]实验结论[0054]实验环境[0055]实验硬件配置:一个物理节点,该节点操作系统为centos7.9,含有8个cpu,型号为intel(r)xeon(r)gold6240mcpu@2.60ghz;内存为32gb;存储为150gb,raid-5,ssd磁盘。[0056]性能评测[0057]实验一:负载生成效率[0058]生成1个数据库实例,其中包含20张表,每张表的非主键属性数为20,每张表的规模分别为1,000k行。在该数据库实例上生成不同连接数目、不同连接形状的负载,每类负载生成50个,观察平均负载生成时间。实验设置3表连接只生成chain、star和cycle类型,grid类型的连接数目皆为偶数。[0059][0060]该表展示了在不同连接个数下,不同连接形状的查询的平均生成时间。由于要进行基于结果导向的参数实例化,当前过滤谓词的参数生成要根据上一个连接的中间结果进行推导,因此随着连接数目的增加,推导次数增多。表中结果展示了各类形状的负载生成时间随着连接数目的增加呈现增长趋势;但各类形状之间的平均负载生成时间相差不大,表明连接形状变复杂并不会导致负载生成速度变慢,由此可见本发明的负载生成方法对于不同连接形状的负载的生成效率稳定。[0061]实验二:负载有效性[0062]生成1个数据库实例,其中包含20张表,每张表的非主键属性数为20,每张表的规模分别为1,000k行。在该数据库实例上生成不同连接数目、不同连接形状的负载,每类负载生成50个,观察负载最终查询结果集大小的范围。实验设置3表连接只生成chain、star和cycle类型,grid类型的连接数目皆为偶数。[0063][0064]该表展示了在不同连接数目下,不同连接形状的负载的最终查询结果集大小的范围。表中数据可见,生成的负载最终结果集大小均大于0(即不为空)。现有负载生成工具rgas生成的负载大约有50%的查询的执行结果为空,并且不支持所有7种连接形状;artemis在相同实验条件下的9表连接查询中有约20%的查询执行结果为空,并且只支持chain形状。[0065]无论是哪一种形状,本发明均能保证生成查询结果不为空的有效负载,为查询优化器评估提供丰富的测试场景,帮助数据库管理员有效地评估查询优化性能。[0066]通过以上实验可知,本发明能够高效稳定地生成丰富多样且有效的复杂连接负载。[0067]参考文献[0068][1]chaudhuris.anoverviewofqueryoptimizationinrelationalsystems[c]//proceedingsoftheseventeenthacmsigactsigmod-sigartsymposiumonprinciplesofdatabasesystems-pods’98.seattle:acmpress,1998:34-43.[0069][2]ibarakit,kamedat.ontheoptimalnestingorderforcomputingn-relationaljoins[j].acmtransactionsondatabasesystems(tods),1984,9(3):482-502.[0070][3]lohmang.isqueryoptimizationa“solved”problem[c]//proc.workshopondatabasequeryoptimization.oregongraduatecentercomp.sci.tech.rep,2014,13:10.[0071][4]manegolds,bonczp,kerstenml.genericdatabasecostmodelsforhierarchicalmemorysystems[c]//vldb′02:proceedingsofthe28thinternationalconferenceonverylargedatabases.morgankaufmann,2002:191-202.[0072][5]o’neilp,o’neile,chenx.starschemabenchmark-revision3[j].edn,2009.[0073][6]tpc.2013.tpc-hbenchmark.http://www.tpc.org/tpch/[0074][7]nambiarro,poessm.themakingoftpc-ds[c]//vldb.2006,6:1049-1058.[0075][8]premadevmforreplication,http://git.io/imdb.[0076][9]leisv,gubicheva,mircheva,etal.howgoodarequeryoptimizers,really?[j].proceedingsofthevldbendowment,2015,9(3):204-215.[0077][10]kipfa,kipft,radkeb,etal.learnedcardinalities:estimatingcorrelatedjoinswithdeeplearning[j].cidr2019.[0078][11]yangz,kamsettya,luans,etal.neurocard:onecardinalityestimatorforalltables[j].proceedingsofthevldbendowment,2021,14(1):61-73.[0079][12]zhur,wuz,hany,etal.flat:fast,lightweightandaccuratemethodforcardinalityestimation[j].vldb,2021,14(9):1489-1502.[0080][13]hany,wuz,wup,etal.cardinalityestimationindbms:acomprehensivebenchmarkevaluation[j].arxivpreprintarxiv:2109.05877,2021.[0081][14]marcusr,kipfa,vanrenena,etal.flow-loss:learningcardinalityestimatesthatmatter[j].proceedingsofthevldbendowment,2021,14(11).[0082][15]slutzdr.massivestochastictestingofsql[c]//verylargedatabase.1998:618-622.[0083][16]zalewskim.americanfuzzylop(2.52b).http://lcamtuf.coredump.cx/afl.[0084][17]seltenreicha,tangb,mullenders.sqlsmith.https://github.com/anse1/sqlsmith.[0085][18]ghitb,poggin,rosenj,etal.sparkfuzz:searchingcorrectnessregressionsinmodernqueryengines[c]//proceedingsoftheworkshopontestingdatabasesystems.portlandoregon:acm,2020:1-6.[0086][19]mik,zhangc,qianw,etal.artemis:anautomatictestsuitegeneratorforlargesealeolapdatabase[c]//internationalsymposiumonbenchmarking,measuringandoptimization.:springer,2020:74-89.[0087]本发明的保护内容不局限于以上实施例。在不背离本发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保护范围。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献