技术新讯 > 计算推算,计数设备的制造及其应用技术 > 索引选择方法、装置、设备、存储介质及程序产品与流程  >  正文

索引选择方法、装置、设备、存储介质及程序产品与流程

  • 国知局
  • 2024-12-06 12:20:14

本申请涉及数据库索引,尤其涉及一种索引选择方法、装置、设备、存储介质及程序产品。

背景技术:

1、通过数据库的索引,可以快速定位数据存储的位置,提升数据查询效率。随着工作负载和查询模式的不断变化,数据库原有的索引可能不再高效,需要适时调整索引配置,以提升数据库性能。

2、在相关技术中,通常由数据库管理员(database administrator,dba)持续监控数据库工作负载和查询模式的变化,基于这些变化调整索引策略,并评估调整后的策略的成本和收益,以决定是否进行索引优化。由dba进行索引优化的策略,索引优化的质量严重依赖于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、本申请提供的索引选择方法、装置、设备、存储介质及程序产品,通过构建的动作空间,实现数据库的索引配置的调整,得到多种可能的索引配置,通过迭代过程,在每次迭代时,基于历史迭代得到行动值,从动作空间中得到本次迭代的动作,进而在本次迭代的动作下更新索引配置,并计算新的索引配置的行动值,通过行动值的变化情况以及迭代次数判定是否结束迭代过程,在迭代结束时,将数据库的索引配置更新为得到的行动值最大的索引配置;实现了基于强化学习算法的数据库索引配置的自动优化,提高了效率,且利用强化学习算法不断在空间中搜索更优的索引配置,提高了索引配置优化的质量,进而提升了数据库的查询性能。

技术特征:

1.一种索引选择方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,基于行动值函数,计算在所述查询工作负载下执行所述下一动作,将当前索引配置转移至下一索引配置的行动值,包括:

3.根据权利要求2所述的方法,其特征在于,所述奖励函数为查询改进奖励项与成本节省奖励项的加权平均值;

4.根据权利要求1-3任一项所述的方法,其特征在于,在基于行动值函数,计算在所述查询工作负载下执行所述下一动作,将当前索引配置转移至下一索引配置的行动值之后,所述方法还包括:

5.根据权利要求4所述的方法,其特征在于,基于得到的行动值,从构建的动作空间中选择当前索引配置的下一动作,包括:

6.根据权利要求5所述的方法,其特征在于,所述ε-贪心算法中的概率ε与迭代次数相关,或者与迭代次数以及迭代次数对应的行动值相关。

7.一种索引选择装置,其特征在于,包括:

8.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-6任一项所述的方法。

10.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时实现如权利要求1-6任一项所述的方法。

技术总结本申请提供一种索引选择方法、装置、设备、存储介质及程序产品。该索引选择方法包括:获取数据库的查询工作负载;重复执行下述步骤,直至连续多次迭代得到的行动值的变化小于预设阈值,或者迭代次数达到预设次数,确定最大行动值对应的下一索引配置为所述数据库的索引配置:基于得到的行动值,从构建的动作空间中选择当前索引配置的下一动作,其中,动作空间包括多个用于调整索引配置的动作;基于行动值函数,计算在查询工作负载下执行下一动作,将当前索引配置转移至下一索引配置的行动值;更新当前索引配置为下一索引配置。利用强化学习算法进行索引选择,提高了索引选择的效率和质量,进而提升了数据库的查询性能。技术研发人员:贾浩文,王鸿翔受保护的技术使用者:中电科金仓(北京)科技股份有限公司技术研发日:技术公布日:2024/12/2

本文地址:https://www.jishuxx.com/zhuanli/20241204/340715.html

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