[发明专利]执行计划自动变更方法、装置、设备及可读存储介质有效
申请号: | 202210481098.1 | 申请日: | 2022-05-05 |
公开(公告)号: | CN114996292B | 公开(公告)日: | 2023-07-25 |
发明(设计)人: | 卞旭东 | 申请(专利权)人: | 北京联华信科技有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F9/54 |
代理公司: | 北京维正专利代理有限公司 11508 | 代理人: | 谢绪宁 |
地址: | 100089 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 执行 计划 自动 变更 方法 装置 设备 可读 存储 介质 | ||
1.一种执行计划自动变更方法,其特征在于,包括:
获取进程队列的排队数量;
若所述排队数量大于数量阈值,则查询数据库中是否存在至少一条长时执行语句;
若所述数据库中存在至少一条长时执行语句,则获取所述至少一条长时执行语句对应的sql_id;
查询预设时间段内每个所述sql_id绑定过的所有的执行计划,并判断每个所述sql_id对应的长时执行语句是否变更过执行计划;
若任一所述sql_id对应的长时执行语句变更过执行计划,则获取当前执行计划的上一条执行计划,并将所述上一条执行计划与所述sql_id进行绑定;
若所述sql_id对应的长时执行语句未变更过执行计划,则判定网络存在问题;
所述查询预设时间段内每个所述sql_id绑定过的所有的执行计划,包括:
获取每个所述sql_id所有绑定过的执行计划以及每个执行计划对应的更改时间;
基于所述更改时间选取预设时间段内的所有执行计划;
所述查询数据库中是否存在至少一条长时执行语句,包括:
获取数据库中当前正在执行的所有sql语句以及所述所有sql语句对应的执行时间;
将所述执行时间大于预设时间阈值的sql语句作为所述长时执行语句。
2.根据权利要求1所述的方法,其特征在于,所述判断每个所述sql_id对应的长时执行语句是否变更过执行计划,包括:
若所述sql_id在预设时间内绑定过至少两个执行计划,则判定所述sql_id对应的长时执行语句变更过执行计划。
3.根据权利要求1或2所述的方法,其特征在于,所述获取进程队列的排队数量,包括:
通过轮询.TMIB获取tuxedo服务器的所述进程队列的排队数量。
4.根据权利要求1或2所述的方法,其特征在于,所述将所述上一条执行计划与所述sql_id进行绑定,包括:
获取所述上一条执行计划的哈希值,将所述上一条执行计划的哈希值更新为所述sql_id当前执行计划的哈希值。
5.一种执行计划自动变更装置,其特征在于,包括:
第一获取模块,用于获取进程队列的排队数量;
第一查询模块,用于若所述排队数量大于数量阈值,则查询数据库中是否存在至少一条长时执行语句;
第二获取模块,用于若所述数据库中存在至少一条长时执行语句,则获取所述至少一条长时执行语句对应的sql_id;
第二查询模块,用于查询预设时间段内每个所述sql_id绑定过的所有的执行计划,并判断每个所述sql_id对应的长时执行语句是否变更过执行计划,若是,则进入绑定模块;
绑定模块,用于若任一所述sql_id对应的长时执行语句变更过执行计划,则获取当前执行计划的上一条执行计划,并将所述上一条执行计划与所述sql_id进行绑定;若所述sql_id对应的长时执行语句未变更过执行计划,则判定网络存在问题;
第二查询模块还具体用于获取每个sql_id所有绑定过的执行计划以及每个执行计划对应的更改时间;基于更改时间选取预设时间段内的所有执行计划;
第一查询模块具体用于获取数据库中当前正在执行的所有sql语句以及所有sql语句对应的执行时间;将执行时间大于预设时间阈值的sql语句作为长时执行语句。
6.一种电子设备,其特征在于,包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行如权利要求1至4中任一种方法的计算机程序。
7.一种计算机可读存储介质,其特征在于,存储有能够被处理器加载并执行如权利要求1至4中任一种方法的计算机程序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京联华信科技有限公司,未经北京联华信科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210481098.1/1.html,转载请声明来源钻瓜专利网。