技术新讯 > 计算推算,计数设备的制造及其应用技术 > 数据库SQL查询优化方法、终端及存储介质与流程  >  正文

数据库SQL查询优化方法、终端及存储介质与流程

  • 国知局
  • 2024-08-05 12:12:56

本发明涉及数据库,尤其涉及一种数据库sql查询优化方法、终端及存储介质。

背景技术:

1、随着数据库技术的发展和数据量的激增,数据库查询优化成为了数据库管理系统中的关键技术。传统的数据库查询优化依赖于静态的、事先定义好的规则和统计信息,这在数据分布变化和查询模式多样化的情境下往往表现不佳。特别是在面对大数据和高并发查询需求时,这种静态优化策略无法充分适应数据环境的快速变化,导致查询性能和处理效率下降。

技术实现思路

1、本发明实施例提供了一种数据库sql查询优化方法、终端及存储介质,以解决现有方法无法充分适应数据环境的快速变化,导致查询性能和处理效率下降的问题。

2、第一方面,本发明实施例提供了一种数据库sql查询优化方法,包括:

3、获取待处理的sql查询语句,并将sql查询语句转换为对应的抽象语法树;

4、基于元数据查询接口,获取最新的元数据信息;

5、根据最新的元数据信息和抽象语法树,生成元数据增强后的抽象语法树;

6、基于元数据增强后的抽象语法树,进行查询动态重组和优化,得到重组后的抽象语法树;

7、基于重组后的抽象语法树,执行sql查询语句。

8、在一种可能的实现方式中,元数据查询接口为元数据分析组件提供的用于查询最新的元数据信息的接口;

9、元数据分析组件通过元数据监听器以事件订阅模式监控数据库的变化,并在监控到数据库的变化信息时,以差异的方式记录数据库的变化信息,以及采用延迟加载和惰性更新策略,在数据库的变化信息实际应用于sql查询优化时,对数据库的变化信息进行加载和更新。

10、在一种可能的实现方式中,元数据分析组件根据元数据的访问频率和修改频率,动态确定内存缓存中的元数据的保留或淘汰,以及通过事务日志分析或数据库的预写日志,确保元数据变更的原子性和一致性;

11、其中,元数据分析组件在内存缓存中保留访问频率高于第一预设访问频率和/或修改频率低于第一预设修改频率的元数据,淘汰访问频率低于第二预设访问频率和/或修改频率高于第二预设修改频率的元数据;第一预设访问频率大于或等于第二预设访问频率,第一预设修改频率小于或等于第二预设修改频率。

12、在一种可能的实现方式中,基于元数据增强后的抽象语法树,进行查询动态重组和优化,得到重组后的抽象语法树,包括:

13、若存在子查询或视图,则根据最新的元数据信息确定子查询或视图所依赖的目标表,在目标表的访问频率高于第三预设访问频率、目标表的索引符合预设高效索引条件、目标表的数据量小于预设数据量、目标表的数据变更频率低于第一预设变更频率、或者执行子查询或视图后的结果集大小小于预设大小时,将子查询或视图进行展开操作;

14、若存在聚合操作,则根据最新的元数据信息中的统计信息,在聚合操作前提前过滤掉非必要数据,减少聚合操作的数据输入量;

15、若存在排序操作,则根据最新的元数据信息确定待排序列是否存在索引、待排序列的数据量和待排序列的数据分布信息,并根据待排序列是否存在索引、待排序列的数据量和待排序列的数据分布信息,确定排序策略;

16、若数据库支持列式存储,则根据最新的元数据信息调整数据库中的数据的存储方式。

17、在一种可能的实现方式中,基于元数据增强后的抽象语法树,进行查询动态重组和优化,得到重组后的抽象语法树,还包括:

18、若存在where子句,则按照最新的元数据信息中的索引选择性由高到低的顺序,重新排序谓词;

19、若存在多表连接,则根据最新的元数据信息中的表的大小信息、索引覆盖信息和/或表中数据的分布特征,调整多表连接的顺序和策略;

20、根据最新的元数据信息,确定查询过程中是否使用索引扫描,以及对于复合索引,分析查询条件中的列与复合索引中的索引列的匹配程度,确定复合索引中最有效的索引利用策略;

21、根据最新的元数据信息中的分区信息,针对与查询条件相关的分区执行查询操作。

22、在一种可能的实现方式中,基于重组后的抽象语法树,执行sql查询语句,包括:

23、基于重组后的抽象语法树,生成多个执行计划;

24、从多个执行计划中,选取执行成本最低的目标执行计划,并按照目标执行计划,执行sql查询语句;

25、在执行sql查询语句的过程中,获取实时性能指标;

26、若实时性能指标不符合预期目标,则生成新的执行计划,并根据新的执行计划,执行sql查询语句;

27、获取sql查询语句的实际执行结果,并根据实际执行结果更新元数据信息。

28、在一种可能的实现方式中,在基于重组后的抽象语法树,执行sql查询语句之后,数据库sql查询优化方法还包括:

29、基于查询日志和最新的元数据信息,确定sql查询语句的执行频率和sql查询语句的执行结果的数据变更频率;

30、若sql查询语句的执行频率高于预设执行频率和/或sql查询语句的执行结果的数据变更频率低于第二预设变更频率,则将sql查询语句的执行结果存储在查询缓存中。

31、在一种可能的实现方式中,查询缓存的有效期与元数据的数据变更模式关联。

32、第二方面,本发明实施例提供了一种数据库sql查询优化装置,包括:

33、第一获取模块,用于获取待处理的sql查询语句,并将sql查询语句转换为对应的抽象语法树;

34、第二获取模块,用于基于元数据查询接口,获取最新的元数据信息;

35、生成模块,用于根据最新的元数据信息和抽象语法树,生成元数据增强后的抽象语法树;

36、查询优化模块,用于基于元数据增强后的抽象语法树,进行查询动态重组和优化,得到重组后的抽象语法树;

37、执行模块,用于基于重组后的抽象语法树,执行sql查询语句。

38、第三方面,本发明实施例提供了一种终端,包括存储器和处理器,存储器用于存储计算机程序,处理器用于调用并运行存储器中存储的计算机程序,执行如第一方面或第一方面的任一种可能的实现方式所述的数据库sql查询优化方法。

39、第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上第一方面或第一方面的任一种可能的实现方式所述的数据库sql查询优化方法的步骤。

40、本发明实施例提供一种数据库sql查询优化方法、终端及存储介质,该方法在对待处理的sql查询语句进行处理时,通过元数据查询接口,获取数据库最新的元数据信息,通过最新的元数据信息可以生成sql查询语句对应的元数据增强后的抽象语法树,通过元数据增强后的抽象语法树,进行查询动态重组和优化,可以基于最新的元数据信息,智能地、动态地调整和优化sql查询语句,可以适应不断变化的数据环境,进而可以提高查询性能和处理效率。

技术特征:

1.一种数据库sql查询优化方法,其特征在于,包括:

2.根据权利要求1所述的数据库sql查询优化方法,其特征在于,所述元数据查询接口为元数据分析组件提供的用于查询最新的元数据信息的接口;

3.根据权利要求2所述的数据库sql查询优化方法,其特征在于,所述元数据分析组件根据元数据的访问频率和修改频率,动态确定内存缓存中的元数据的保留或淘汰,以及通过事务日志分析或数据库的预写日志,确保元数据变更的原子性和一致性;

4.根据权利要求1所述的数据库sql查询优化方法,其特征在于,所述基于所述元数据增强后的抽象语法树,进行查询动态重组和优化,得到重组后的抽象语法树,包括:

5.根据权利要求4所述的数据库sql查询优化方法,其特征在于,所述基于所述元数据增强后的抽象语法树,进行查询动态重组和优化,得到重组后的抽象语法树,还包括:

6.根据权利要求1所述的数据库sql查询优化方法,其特征在于,所述基于所述重组后的抽象语法树,执行所述sql查询语句,包括:

7.根据权利要求1至6任一项所述的数据库sql查询优化方法,其特征在于,在所述基于所述重组后的抽象语法树,执行所述sql查询语句之后,所述数据库sql查询优化方法还包括:

8.根据权利要求7所述的数据库sql查询优化方法,其特征在于,所述查询缓存的有效期与元数据的数据变更模式关联。

9.一种终端,其特征在于,包括存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,执行如权利要求1至8中任一项所述的数据库sql查询优化方法。

10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述数据库sql查询优化方法的步骤。

技术总结本发明提供一种数据库SQL查询优化方法、终端及存储介质,涉及数据库领域。该方法包括:获取待处理的SQL查询语句,并将SQL查询语句转换为对应的抽象语法树;基于元数据查询接口,获取最新的元数据信息;根据最新的元数据信息和抽象语法树,生成元数据增强后的抽象语法树;基于元数据增强后的抽象语法树,进行查询动态重组和优化,得到重组后的抽象语法树;基于重组后的抽象语法树,执行SQL查询语句。本申请可以基于最新的元数据信息,智能地、动态地调整和优化SQL查询语句,可以适应不断变化的数据环境,进而可以提高查询性能和处理效率。技术研发人员:温斌受保护的技术使用者:天津南大通用数据技术股份有限公司技术研发日:技术公布日:2024/8/1

本文地址:https://www.jishuxx.com/zhuanli/20240802/261587.html

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