说明:收录25万 73个行业的国家标准 支持批量下载
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202211097686.1 (22)申请日 2022.09.08 (71)申请人 武汉大学 地址 430072 湖北省武汉市武昌区珞珈山 (72)发明人 彭煜玮 刘洪浩 江欢 彭智勇  (74)专利代理 机构 武汉智权专利代理事务所 (特殊普通 合伙) 42225 专利代理师 余浩 (51)Int.Cl. G06F 16/2455(2019.01) G06F 16/22(2019.01) G06F 16/242(2019.01) (54)发明名称 SQL执行计划管理方法、 装置、 设备及可读存 储介质 (57)摘要 本发明提供一种SQL执行计划管理方法、 装 置、 设备及可读 存储介质, SQL执行计划管理方法 包括: 通过查找哈希表, 判断哈希表中是否存储 有待执行SQL语句和待执行SQL语句的执行计划; 若否, 则执行待执行SQL语句的执行计划, 并将待 执行SQL语句和待执行SQL语句的执行计划存储 至哈希表中; 若是, 则根据哈希表中存储的待执 行SQL语句的执行计划, 确定并执行待执行SQL语 句的计划; 将哈希表中存储的数据进行持久化保 存。 通过本发明, 实现了在尽可能节省内存空间 的基础上保持数据库的性能稳定, 防止数据库的 性能回归, 同时通过存储于内存中的哈希表, 可 以在多个SQL会话间共享执行计划, 降低了执行 计划管理对系统资源的消耗。 权利要求书2页 说明书9页 附图4页 CN 115495481 A 2022.12.20 CN 115495481 A 1.一种SQ L执行计划管理方法, 其特 征在于, 所述SQ L执行计划管理方法包括: 从数据库获取待执 行SQL语句和待执 行SQL语句的执 行计划; 通过查找哈希表, 判断哈希表中是否存储有待执行SQL语句和待执行SQL语句的执行计 划; 若否, 则执行待执行SQL语句的执行计划, 并将待执行SQL语句和待执行SQL语句的执行 计划存储至哈希 表中; 若是, 则根据哈希表中存储的待执行SQL语句的执行计划, 确定待执行SQL语句的计划, 并执行确定的待执 行SQL语句的计划; 所述哈希表存储于 内存, 当用于存储哈希表的内存容量大于预设容量或哈希表中的数 据条数大于预设条数时, 按照哈希表中数据的使用频率从低到高的顺序, 依 次将哈希表中 存储的数据进行持久化保存, 并从哈希表中删除, 直至用于存储哈希表的内存容量不大于 预设容量或哈希 表中的数据条 数不大于预设条 数。 2.如权利要求1所述的SQL执行计划管理方法, 其特征在于, 所述哈希表包括第一哈希 表和第二哈希表, 所述将待执行SQL语句和待执行SQL语句的执行计划存储至哈希表中包 括: 以待执行SQL语句作为 查找键, 将待执 行SQL语句存储至第一哈希 表中; 以待执行SQL语句和待执行SQL语句的执行计划组建数组, 以组建的数组作为查找键, 将待执行SQL语句和待执 行SQL语句的执 行计划存 储至第二哈希 表中。 3.如权利要求1所述的SQL执行计划管理方法, 其特征在于, 所述执行计划由一个或多 个计划单元组成, 所述根据哈希表中存储的待执行SQL语句的执行计划, 确定待执行SQL语 句的计划, 并执 行确定的待执 行SQL语句的计划包括: 根据哈希表中存储 的待执行SQL语句的计划单元, 确定待执行SQL语句的计划基线, 所 述待执行SQL语句的计划基线由哈希表中存储的与待 执行SQL语句对应的, 且状态 为接受的 计划单元组成; 判断待执 行SQL语句的计划单 元是否均存在于待执 行SQL语句的计划基线中; 若是, 则执 行待执行SQL语句的执 行计划; 若否, 则将未存在于待执行SQL语句的计划基线中的待执行SQL语句和待执行SQL语句 的计划单 元存储至哈希 表中, 且将计划单 元的状态设置为 不接受; 检测计划基线选项是否启用; 若否, 则执 行待执行SQL语句的执 行计划; 若是, 则判断待执 行SQL语句的计划基线中是否包括固定计划; 若是, 则从固定计划中选择代价 最小的计划执 行; 若否, 则从待执 行SQL语句的计划基线中选择代价 最小的计划执 行。 4.如权利 要求3所述的SQL执行计划管理方法, 其特征在于, 所述SQL执行计划管理方法 还包括: 基于预设周期, 对哈希表中存储的状态为不接受的计划单元进行演化, 若通过验证, 则 将计划单 元的状态从不接受修改为接受。 5.如权利要求4所述的SQL执行计划管理方法, 其特征在于, 所述对哈希表中存储的状 态为不接受的计划单元进行演化, 若通过验证, 则将计划单元的状态从不接受修改为接受权 利 要 求 书 1/2 页 2 CN 115495481 A 2包括: 执行哈希表中存储的计划基线中代价最小的计划单元, 获得第 一运行时间和第 一消耗 内存; 依次执行哈希表中存储的状态为不接受 的计划单元, 获得第 二运行时间和第 二消耗内 存; 若第二运行时间大于第一 运行时间, 则保持计划单 元的状态为 不接受; 若第二运行时间不大于第一运行时间, 且第二消耗内存小于第一消耗内存, 则将计划 单元的状态从不接受修改为接受。 6.如权利 要求1所述的SQL执行计划管理方法, 其特征在于, 所述SQL执行计划管理方法 还包括: 基于预设周期, 将哈希 表中的存 储数据进行持久化保存。 7.如权利 要求3所述的SQL执行计划管理方法, 其特征在于, 所述SQL执行计划管理方法 还包括: 捕获因数据库变化而导致的失效的执行计划, 将哈希表中存储的与失效的执行计划对 应的计划单 元的状态设置为 不可用。 8.一种SQ L执行计划管理装置, 其特 征在于, 所述SQ L执行计划管理装置包括: 获取模块, 用于从数据库获取待执 行SQL语句和待执 行SQL语句的执 行计划; 查找模块, 用于通过查找哈希表, 判断哈希表中是否存储有待执行SQL语句和待执行 SQL语句的执 行计划; 存储模块, 用于若否, 则执行待执行SQL语句的执行计划, 并将待执行SQL语句和待执行 SQL语句的执 行计划存 储至哈希 表中; 执行模块, 用于若是, 则根据哈希表中存储的待执行SQL语句的执行计划, 确定待执行 SQL语句的计划, 并执 行确定的待执 行SQL语句的计划; 保存模块, 用于所述哈希表存储于内存, 当用于存储 哈希表的内存容量大于预设容量 或哈希表中的数据条数大于预设条数时, 按照哈希表中数据的使用频率从低到高的顺序, 依次将哈希表中存储的数据进行持久化保存, 并从哈希表中删除, 直至用于存储哈希表的 内存容量不大于预设容 量或哈希 表中的数据条 数不大于预设条 数。 9.一种SQL执行计划管理设备, 其特征在于, 所述SQL执行计划管理设备包括处理器、 存 储器、 以及 存储在所述存储器上并可被所述处理器执行的SQL执行计划管理程序, 其中所述 SQL执行计划管 理程序被所述处理器执行时, 实现如权利要求 1至7中任一项 所述的SQL执行 计划管理方法的步骤。 10.一种可读存储介质, 其特征在于, 所述可读存储介质上存储有SQL执行计划管理程 序, 其中所述SQL执行计划管理程序被处理器执行时, 实现如权利要求 1至7中任一项 所述的 SQL执行计划管理方法的步骤。权 利 要 求 书 2/2 页 3 CN 115495481 A 3

.PDF文档 专利 SQL执行计划管理方法、装置、设备及可读存储介质

文档预览
中文文档 16 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共16页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 SQL执行计划管理方法、装置、设备及可读存储介质 第 1 页 专利 SQL执行计划管理方法、装置、设备及可读存储介质 第 2 页 专利 SQL执行计划管理方法、装置、设备及可读存储介质 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 17:14:05上传分享
友情链接
交流群
  • //public.wenku.github5.com/wodemyapi/22.png
-->
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。