行业标准网
(19)中华 人民共和国 国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202111670662.6 (22)申请日 2021.12.31 (71)申请人 杭州电子科技大 学 地址 310018 浙江省杭州市下沙高教园区2 号大街 (72)发明人 张桦 段浩洋 叶晨 徐宏  吴以凡 戴国骏  (74)专利代理 机构 杭州君度专利代理事务所 (特殊普通 合伙) 33240 代理人 朱月芬 (51)Int.Cl. G06F 16/2453(2019.01) G06F 16/2458(2019.01) G06F 16/22(2019.01) G06F 16/36(2019.01)G06F 16/901(2019.01) G06N 3/04(2006.01) G06N 3/08(2006.01) (54)发明名称 一种基于数据约束的数据库查询优化方法 (57)摘要 本发明公开了一种基于数据约束的数据库 查询优化方法。 本发明包括如下步骤: 步骤1: 获 取查询语句; 步骤2: 获取表 的编码; 步骤3: 查询 语句输入解析模块解析成为查询树; 步骤4: 查询 树输入传统查询优化器; 步骤5: 计划编码; 步骤 6: tcnn树卷积神经网络 预测计划的执行时间; 步 骤7: 成本修正; 步骤8: 数据库执行模块; 步骤9: 经验重放。 本发 明针对传统数据库中存在的成本 估计误差问题, 使用树卷积神经网络, 充分学习 查询计划的结构特征, 在此基础上, 利用多列之 间存在的数据约束设计一种成本估计修正方法, 提高树卷积神经网络模型的训练效率。 本发明能 提高模型的训练效率, 给出准确的成本估计, 最 终达到查询优化的目的。 权利要求书3页 说明书5页 附图1页 CN 114328608 A 2022.04.12 CN 114328608 A 1.一种基于数据约束的数据库查询优化方法, 其特 征在于包括如此步骤: 步骤1: 获取查询语句; 输入: 数据库表之间的连接图, 每 个表所有列的数据; 输出: 查询语句和优化之后的查询语句(qa, qb); 根据数据库的连接图, 随机选择包含有数据约束的表; 随机选取表中的列, 随机选取这 一列的某个数据, 利用符号将其连接, 获得查询谓词; 将选择的表、 连接关系 、 查询谓词组合成查询语句qa; 步骤2: 获取表的编码; 输入: 各个表的数据; 输出: n个表对应的表向量Vts[v1, v2, ...vn]; 步骤3: 查询语句输入解析模块 解析成为 查询树; 步骤4: 查询树输入传统查询优化器; 步骤5: 计划编码; 步骤6: tcn n树卷积神经网络预测计划的执 行时间; 步骤7: 成本修 正; 步骤8: 数据库执 行模块; 步骤9: 经验重放。 2.根据权利要求1所述的一种基于数据约束的数据库查询优化方法, 其特征在于步骤1 具体实现如下: 1‑1.随机选取几个连接关系中包含有数据约束的表, 从连接关系中提取出所有的表和 连接关系, 随机选取提取出 的几个表中的几个列和该列的某个数据, 然后使用连接符号连 接, 从而获得谓词; 用AND或者OR连接这些谓词, 获取如下格式的查询语句: SELECTCOUNT(*) FROM表WH ERE连接关系AND谓词OR谓词; 1‑2.在两个相同的查询语句最后, 一个加入重写之前的谓词, 另一个加入重写之后的 谓词, 最终获得重写之前的查询语句qa: SELECTCOUNT(*)FROM表WHERE连接关系AND谓词OR 谓词AND重写之前的谓词; 和 重写之后的查询语句qb: SELECTCOUNT(*)FROM表WHERE连接关 系AND谓词OR谓词AND重写之后的谓词。 3.根据权利要求2所述的一种基于数据约束的数据库查询优化方法, 其特征在于步骤2 具体实现如下: 2‑1.将表的字符类型 数据使用W ord2Vec()训练成为 一个字典; 2‑2.将表中每一行数据编码, 整型数据采用标准化浮点数编码, 字符型数据编码从步 骤2‑1训练的字典中获取; 2‑3.利用加权平均的方法将所有行归一成一行向量表示为v, 最终获得n个表的表向量 Vts[v1, v2, ...vn]。 4.根据权利要求2所述的一种基于数据约束的数据库查询优化方法, 其特征在于步骤3 具体实现如下: 3‑1.将查询语句qa输入解析模块 解析得到查询qa对应的查询树Ta; 3‑2.将查询语句qb输入解析模块 解析得到查询qa对应的查询树Tb。 5.根据权利要求2所述的一种基于数据约束的数据库查询优化方法, 其特征在于步骤4权 利 要 求 书 1/3 页 2 CN 114328608 A 2具体实现如下: 4‑1.获取传统优化器给出的候选计划中K个查询计划, 具体将查询树Ta输入传统查询优 化器, 得到查询语句qa的K个计划plansa[plana1, plana2, ..., planak]; 将查询树Tb输入传统 查询优化器, 得到查询语句qb的K个查询计划plansb[planb1, planb2, ..., planbk]。 6.根据权利要求2所述的一种基于数据约束的数据库查询优化方法, 其特征在于步骤5 具体实现如下: 5‑1.将plansa和plansb中的每个计划进行编码; 计划是树形结构, 树形结构为(父结点, (左孩子树), (右孩子树)), 叶子结点是扫描 结点, 非叶子结点是连接结点, 将 每个结点的操 作类型、 成本和 基数进行编码; 结点操作类型的编码方式是一位有效编码, 成本、 基数以标 准化浮点数编码; 编码后得到树状向量(父 结点向量, (左孩 子向量树), (右孩 子向量树)); 5‑2.plansa和plansb中所有计划的叶子结点, 若叶子结点扫描的若是含有数据约束的 表t, 则将此叶子结点向量换成如下 的向量: 此叶子结点的向量输入一个全连接层, 并且将 对应表t的表向量vt从Vts中获得, 输入另一个全连接层, 两个全连接层输出的向量使用 concatenate()连接; 5‑3.通过步骤5 ‑2能够得到plansa和表向量vt连接之后的plansat[planat1, planat2, ..., planatk], 以及plansb和表向量连接之后的plansbt[planbt1, planbt2, ..., planbtk]。 7.根据权利要求2所述的一种基于数据约束的数据库查询优化方法, 其特征在于步骤6 具体实现如下: 6‑1.plansat[planat1, planat2, ..., planatk]输入树卷积神经网络 中, 使用Pytorch实现 树卷积神经网络结构, 经 过如下的卷积层: 6‑1‑1.BinaryTreeConv(10, 25 6); 6‑1‑2.BinaryTreeConv(256, 128); 6‑1‑3.BinaryTreeConv(256, 128); 6‑1‑4.BinaryTreeConv(128, 64); 6‑1‑5.Linear(64, 32); 6‑1‑6.Linear(32, 1); 6‑2.使用argmi n(), 获得成本估计最小的计划 和成本估计: (plana_best, lantencya_best); 6‑3.plansbt[planbt1, planbt2, ..., planbtk]输入树卷积神经网络中, 经过同样的卷积 层; 6‑4.使用argmi n(), 获得成本估计最小的计划 和成本估计: (planb_best, lantencyb_best)。 8.根据权利要求2所述的一种基于数据约束的数据库查询优化方法, 其特征在于步骤7 具体实现如下: 7‑1.将(plana_best, lantencya_best)中的lantencya_best替换成lantencyb_best, 获得 (plana_best, lantencyb_best)。 9.根据权利要求2所述的一种基于数据约束的数据库查询优化方法, 其特征在于步骤8 具体实现如下: 8‑1.将plana_best送入数据库执行模块, 得到真正的执行时间lantencya_real, 将真正的权 利 要 求 书 2/3 页 3 CN 114328608 A 3

.PDF文档 专利 一种基于数据约束的数据库查询优化方法

文档预览
中文文档 10 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共10页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种基于数据约束的数据库查询优化方法 第 1 页 专利 一种基于数据约束的数据库查询优化方法 第 2 页 专利 一种基于数据约束的数据库查询优化方法 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-19 00:18:20上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。