【技术实现步骤摘要】
一种基于BERT的数据库查询连接顺序调整方法
[0001]本专利技术涉及数据库查询优化
,尤其涉及一种基于BERT的数据库查询连接顺序调整方法。
技术介绍
[0002]同一条查询语句改变不同的表连接顺序会产生不同的执行时间,甚至会存在数量级的差距。为了提高数据库查询性能,DBMS(数据库管理系统)会在执行计划搜索空间中选择执行时间较短的连接顺序来提升性能以及减少资源消耗。
[0003]目前研究基本采用基于强化学习的查询方法,通过基于树长短期记忆的方法构建连接树,然后通过与环境交互获得反馈信息对连接树进行调整获得优化后的连接计划。Xiang Yu等人在文献"Reinforcement Learning with Tree
‑
LSTM for Join Order Selection,"ICDE,1297
‑
1308,2020;提出了一种连接顺序优化模型RTOS,采用临近策略优化算法指导连接顺序的选择,RTOS中优化器agent,通过与环境(DBMS)的试错交互从反馈中学习,通过构建Tree
‑
LSTM将所有表进行连接,最终发送给DBMS执行。
[0004]综上所述,目前基于强化学习进行连接顺序调整还存在如下问题:强化学习模型会通过与数据库交互对查询语句进行优化,对数据库的反复读写造成较多的资源消耗;经过训练后的强化学习模型会根据经验对当前需求进行修改,很容易陷入局部最优解而难以跳出;强化学习总是需要一个奖励函数,但是奖励函数很难被定义,若设定了 ...
【技术保护点】
【技术特征摘要】
1.一种基于BERT的数据库查询连接顺序调整方法,其特征在于,包括:步骤S1,基于数据库中的表,利用SQL生成器生成SQL集合A={α},其中,A中包含|A|条SQL语句α;步骤S2,基于所述SQL集合A生成训练集M
a
、验证集M
b
和测试集M
c
,即A=M
a
∪M
b
∪M
c
,利用学习式连接顺序调整模型对所述训练集M
a
进行调整,调整后得到的查询集M
a
′
;步骤S3,将所述查询集M
a
′
中各元素编码为文本向量;步骤S4,将所述文本向量编辑成为输入向量,将|M
a
′
|个所述输入向量输入BERT模型进行预训练,通过调整权重矩阵提高所述BERT模型的预测准确度;步骤S5,利用所述验证集M
b
、结合对比调优模型验证所述BERT模型,验证过程中出现调优效果不优于所述对比调优模型的情况时,对所述权重矩阵执行fine
‑
tuning操作;步骤S6,利用所述测试集M
c
、结合所述对比调优模型测试步骤S5处理后的BERT模型,测试完成后调优效果全部优于所述对比调优模型时,训练结束;步骤S7,利用所述步骤S6训练好的BERT模型执行新查询的查询连接顺序优化调整。2.如权利要求1所述的基于BERT的数据库查询连接顺序调整方法,其特征在于,所述步骤S3包括:步骤S31,定义数据模型M,所述数据模型M包括两种数据存储形式:
§
={λ,γ,σ,μ}、Ψ={ζ,η},其中,λ指SQL语句中查询的具体属性,γ指查询条件中限制的结果范围,σ指SQL语句中涉及的所有列的列名,μ为单表的数据量大小,ζ指SQL语句中涉及到的所有表的表名,η指两表之间的所有连接方式;步骤S32,对所述查询集M
a
′
中的SQL语句进行分词,得到所述SQL语句中的λ、γ、σ、ζ、η,访问数据库查询出ζ所对应的各个μ值,将λ、γ、σ、ζ、η、μ作为所述SQL语句的特征token,将提取到的各个所述特征token映射到所述数据模型M中并存储;步骤S33,学习
§
和Ψ之间的语义联系,根据
§
中的条件调整Ψ中的表顺序以及表连接方式;步骤S34,通过词向量表征方式将
§
和Ψ编码为所述SQL语句的文本向量δ。3.如权利要求2所述的基于BERT的数据库查询连接顺序调整方法,其特征在于,所述步骤S4包括:步骤S41,将|M
a
′
|个所述文本向量δ输入所述BERT模型,在所述BERT模型中为各所述文本向量δ添加片段向量ε和位置向量ρ,得到|M
a
′
|个输入向量¢,其中,¢=δ+ε+ρ;步骤S42,将各所述输入向量¢输入所述BERT模型中,对各所述输入向量¢中的Ψ数据进行随机mask掩盖,其中所述Ψ数据中的mask掩盖部分数据占所述输入向量¢的a%;步骤S43,所述BERT模型通过计算
§
与所述Ψ中未被mask掩盖的数据之间的关系对所述mask掩盖部分数据进行预测,得出mask掩盖部分预测数据,并进一步得出包含所述mask掩盖部分预测数据的输出向量¢
′
;步骤S44,根据所述输出向量¢
...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。