[发明专利]执行计划自动变更方法、装置、设备及可读存储介质有效
申请号: | 202210481098.1 | 申请日: | 2022-05-05 |
公开(公告)号: | CN114996292B | 公开(公告)日: | 2023-07-25 |
发明(设计)人: | 卞旭东 | 申请(专利权)人: | 北京联华信科技有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F9/54 |
代理公司: | 北京维正专利代理有限公司 11508 | 代理人: | 谢绪宁 |
地址: | 100089 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 执行 计划 自动 变更 方法 装置 设备 可读 存储 介质 | ||
本申请涉及一种执行计划自动变更方法、装置、设备及可读存储介质,其方法包括获取进程队列的排队数量;若排队数量大于数量阈值,则查询数据库中是否存在至少一条长时执行语句;若数据库中存在至少一条长时执行语句,则获取至少一条长时执行语句对应的sql_id;查询预设时间段内每个sql_id绑定过的所有的执行计划,并判断每个sql_id对应的长时执行语句是否变更过执行计划;若任一sql_id对应的长时执行语句变更过执行计划,则获取当前执行计划的上一条执行计划,并将上一条执行计划与sql_id进行绑定。本申请具有提高解决进程队列拥堵的问题的工作效率的效果。
技术领域
本申请涉及oracle数据库的技术领域,尤其是涉及一种执行计划自动变更方法、装置、设备及可读存储介质。
背景技术
Oracle数据库收到sql执行命令后,通过自身内部算法,选择最优的执行计划来执行这条sql语句。但是,随着数据库的长时间运行,经常删除分区或数据,且没有及时做完相关表的统计信息的收集分析,Oracle数据库会自动改变执行计划,在改变执行计划的过程中,可能会导致sql执行缓慢,发生进程队列拥堵,影响业务的可持续服务能力。
相关技术中,通常采用手动的方式查询执行缓慢原因,并且在发现执行缓慢的原因后,需要手动解决进程队列拥堵的问题,全程耗费时间比较长,十分影响工作效率。
发明内容
为了提高解决进程队列拥堵的问题的工作效率,本申请提供一种执行计划自动变更方法、装置、设备及可读存储介质。
第一方面,本申请提供一种执行计划自动变更方法,采用如下的技术方案:
一种执行计划自动变更方法,包括:
获取进程队列的排队数量;
若所述排队数量大于数量阈值,则查询数据库中是否存在至少一条长时执行语句;
若所述数据库中存在至少一条长时执行语句,则获取所述至少一条长时执行语句对应的sql_id;
查询预设时间段内每个所述sql_id绑定过的所有的执行计划,并判断每个所述sql_id对应的长时执行语句是否变更过执行计划;
若任一所述sql_id对应的长时执行语句变更过执行计划,则获取当前执行计划的上一条执行计划,并将所述上一条执行计划与所述sql_id进行绑定。
通过采用上述技术方案,自动获取进程队列的排队数量,当排队数量达到数量阈值时,自动查询数据库中的长时执行语句,并获取长时执行语句对应sql_id,通过sql_id查询执行计划的变更记录,并将上一条执行计划与当前的sql_id进行绑定,以解决进程队列发生拥堵的问题,相对于手动的方式查询执行缓慢原因、手动解决进程队列拥堵的问题的方式来说,提高了解决进程队列拥堵的工作效率。
可选的,所述判断每个所述sql_id对应的长时执行语句是否变更过执行计划,包括:
若所述sql_id在预设时间内绑定过至少两个执行计划,则判定所述sql_id对应的长时执行语句变更过执行计划。
可选的,所述获取进程队列的排队数量,包括:
通过轮询.TMIB获取tuxedo服务器的所述进程队列的排队数量。
通过采用上述技术方案,通过轮询.TMIB自动获取tuxedo服务器进程队列的排队数量,监测进程队列是否发生发生拥堵,当进程队列发生拥时,能够及时得知,相对于手动的方式查询执行缓慢原因的方式来说速度更快,同时也能够提高解决进程队列拥堵的工作效率。
可选的,所述查询数据库中是否存在至少一条长时执行语句,包括:
获取数据库中当前正在执行的所有sql语句以及所述所有sql语句对应的执行时间;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京联华信科技有限公司,未经北京联华信科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210481098.1/2.html,转载请声明来源钻瓜专利网。