技术新讯 > 计算推算,计数设备的制造及其应用技术 > 一种基于物理计划比对的慢查询优化方法、系统及终端  >  正文

一种基于物理计划比对的慢查询优化方法、系统及终端

  • 国知局
  • 2024-08-19 14:23:25

本发明涉及电子信息,尤其涉及一种基于物理计划比对的慢查询优化方法、系统及终端。

背景技术:

1、慢查询管理是指对慢查询进行识别、分析以及预测的各种手段与技术。慢查询管理可以通过日志进行的,数据库系统自动记录所有查询的执行时间到日志中,dba(database administrator,数据库管理员)通过日志找到执行缓慢的查询,并进行调优。慢查询优化方法需要拥有专业知识的人员花费大量时间去完成。因此,为了方便dba对慢查询进行管理,使用了可读性更强的数据库监控系统与更专业的数据库诊断工具,数据库监控系统可以自动化找出执行的查询中哪些查询是慢查询,并推荐可行的诊断工具对这些慢查询进行解析;诊断工具则对这些慢查询相关信息进行分析,最终告诉dba慢查询的原因,以及具体的优化手段。

2、然而,数据库监控系统与数据库诊断工具虽然大大减少了dba的负担,保证了数据库系统的稳定性,但无法在查询执行前对慢查询进行识别与拦截,从而导致用户在查询中任然会遇到慢查询,导致查询受阻,从而影响查询速度。

3、因此,现有技术还有待于改进和发展。

技术实现思路

1、本发明的主要目的在于提供一种基于物理计划比对的慢查询优化方法、系统、终端及计算机可读存储介质,旨在解决现有技术中无法在查询执行前对慢查询进行识别与拦截,从而导致用户在查询中任然会遇到慢查询,导致查询受阻,从而影响查询速度的问题。

2、为实现上述目的,本发明提供一种基于物理计划比对的慢查询优化方法,所述基于物理计划比对的慢查询优化方法包括如下步骤:

3、获取用户查询信息,基于数据库优化器,根据所述用户查询信息生成查询执行计划;

4、获取历史慢查询,检测所述查询执行计划中是否包含有所述历史慢查询中的计划;

5、当所述查询执行计划中不包含有所述历史慢查询中的计划时,获取预先设置的超时时长,实时获取所述查询执行计划的运行时间,当所述运行时间超过所述超时时长时,将当前查询信息保存到历史慢查询中,并终止查询。

6、可选地,所述获取历史慢查询,检测所述查询执行计划中是否包含有所述历史慢查询中的计划,具体包括:

7、获取历史慢查询,并根据所述历史慢查询获取慢查询表;

8、获取所述查询执行计划中所有的子计划,以所述查询执行计划中的每个所述子计划作为节点,构建每个所述子计划对应的结构表达式,并根据每个所述结构表达式生成每个所述子计划对应的慢查询哈希值;

9、根据每个所述子计划对应的慢查询哈希值,从所述慢查询表中检测所述查询执行计划中是否包含有所述历史慢查询中的计划。

10、可选地,所述获取所述查询执行计划中所有的子计划,以所述查询执行计划中的每个所述子计划作为节点,构建每个所述子计划对应的结构表达式,具体包括:

11、获取所述查询执行计划中所有的子计划;

12、以所述查询执行计划中的每个所述子计划作为节点,构建以所述查询执行计划中的每个所述子计划对应节点作为根节点的结构表达式,其中,使用字符串表示每个结构表达式。

13、可选地,所述根据每个所述子计划对应的慢查询哈希值,从所述慢查询表中检测所述查询执行计划中是否包含有所述历史慢查询中的计划,具体包括:

14、根据每个所述子计划对应的慢查询哈希值,采用计划等价效验法,判断所述历史慢查询中是否存在与所述查询执行计划相等的计划;

15、当所述历史慢查询中存在与所述查询执行计划相等的计划时,所述查询执行计划中包含有所述历史慢查询中的计划。

16、可选地,所述根据每个所述子计划对应的慢查询哈希值,采用计划等价效验法,判断所述历史慢查询中是否存在与所述查询执行计划是相等的计划,具体包括:

17、根据每个所述子计划对应的慢查询哈希值,获取所述查询执行计划中所有所述子计划的数量、内容和属性列表长度;

18、根据所述查询执行计划中所有所述子计划的数量、内容和属性列表长度,采用计划等价效验法和预先设置的命名映射,判断所述历史慢查询中是否存在与所述查询执行计划是相等的计划。

19、可选地,所述当所述查询执行计划中不包含有所述历史慢查询中的计划时,获取预先设置的超时时长,实时获取所述查询执行计划的运行时间,当所述运行时间超过所述超时时长时,将当前查询信息保存到历史慢查询中,并终止查询,具体包括:

20、当所述查询执行计划中不包含有所述历史慢查询中的计划时,获取预先设置的超时时长;

21、当查询执行计划开始运行后,基于定时器实时获取所述查询执行计划的运行时间;

22、当所述定时器获取到的所述运行时间超过所述超时时长时,所述定时器发送中断信号到执行器中,基于所述执行器中断查询,并将当前查询信息保存到历史慢查询中。

23、可选地,所述当查询执行计划开始运行后,基于定时器实时获取所述查询执行计划的运行时间,之后还包括:

24、当所述查询执行计划在运行过程中,基于定时器实时获取的所述查询执行计划的运行时间未超过所述超时时长,则不终止所述查询;

25、当查询完成时,定时器停止获取的所述查询执行计划的运行时间,结束查询。

26、此外,为实现上述目的,本发明还提供一种基于物理计划比对的慢查询优化系统,其中,所述基于物理计划比对的慢查询优化系统包括:

27、计划生成模块,用于获取用户查询信息,基于数据库优化器,根据所述用户查询信息生成查询执行计划;

28、检测比对模块,用于获取历史慢查询,检测所述查询执行计划中是否包含有所述历史慢查询中的计划;

29、终止模块,用于当所述查询执行计划中不包含有所述历史慢查询中的计划时,获取预先设置的超时时长,实时获取所述查询执行计划的运行时间,当所述运行时间超过所述超时时长时,将当前查询信息保存到历史慢查询中,并终止查询。

30、此外,为实现上述目的,本发明还提供一种终端,其中,所述终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于物理计划比对的慢查询优化程序,所述基于物理计划比对的慢查询优化程序被所述处理器执行时实现如上所述的基于物理计划比对的慢查询优化方法的步骤。

31、此外,为实现上述目的,本发明还提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有基于物理计划比对的慢查询优化程序,所述基于物理计划比对的慢查询优化程序被处理器执行时实现如上所述的基于物理计划比对的慢查询优化方法的步骤。

32、本发明中,获取用户查询信息,基于数据库优化器,根据所述用户查询信息生成查询执行计划;获取历史慢查询,检测所述查询执行计划中是否包含有所述历史慢查询中的计划;当所述查询执行计划中不包含有所述历史慢查询中的计划时,获取预先设置的超时时长,实时获取所述查询执行计划的运行时间,当所述运行时间超过所述超时时长时,将当前查询信息保存到历史慢查询中,并终止查询。在本发明中,针对于目前无法在查询执行前对慢查询进行识别与拦截,从而导致用户在查询中任然会遇到慢查询,导致查询受阻,从而影响查询速度的问题,本发明通过历史慢查询和当前的查询执行计划来判断当前的查询执行计划是否是慢查询,若是则可以对应进行终止,而当不是时,还根据设置的超时时长来避免过长时间的查询,从而实现快速确定查询物理计划是否包含慢查询物理计划的效果,也让用户可以提前发现慢查询,从而避免慢查询对查询速度的影响,提高查询效率。

本文地址:https://www.jishuxx.com/zhuanli/20240819/275025.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。