本发明涉及数据库索引,特别是一种数据索引在线自动调优的方法。
背景技术:
1、使用数据库索引进行数据库查询工作一直以来都是数据库研究中的长期关注点,对条件不同的查询应用适当的索引支持将带来显著的性能提升。
2、而大多数当今索引选择解决方案仍然高度依赖手动操作,需要数据库管理员在离线模式下进行调用,这意味着数据库管理员需要识别和提供代表性的训练工作负载,这种预先设置索引随后不同类型的查询使用统一的索引执行工作的传统方法已逐渐不能满足当前数据库查询性能的需求。即使是最新的进展,例如查询存储,对于动态环境的支持也很有限。
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、所述索引臂单元用于,基于当前工作负载生成新的索引臂,并将所述新的索引臂加入原索引臂集中,形成新的索引臂集;
33、所述超级臂单元用于,通过所述多臂老虎机模型中的贪心预测模型,确定所述新的索引臂集中的执行超级臂,所述执行超级臂用于执行所述当前工作负载的数据库查询工作。
34、发明效果
35、基于多臂老虎机模型进行自动索引生成和选择。本方法将索引选择建模为多臂老虎机,将索引优化问题建模为老虎机的序贯决策问题,每个可能的索引配置表示为一个臂,随后根据查询特征动态生成相关索引作为臂,而不是预先枚举和存储所有可能索引,缩小了搜索空间,降低了学习复杂度;同时为每个臂设计了丰富的上下文特征,反映索引属性、统计信息、查询特征等,使索引选择更依赖上下文信息,保证模型适配后续算法;直接利用索引在真实查询上的运行时间作为反馈,这种不依赖于不准确的成本估计模型的方法,能够使学习到的知识更贴近实际效果。
1.一种数据索引在线自动调优的方法,其特征在于,所述方法包括:
2.如权利要求1所述的一种数据索引在线自动调优的方法,其特征在于,在所述基于索引选择的流程建立多臂老虎机模型之后,还包括:
3.如权利要求2所述的一种数据索引在线自动调优的方法,其特征在于,所述基于所述索引选择的奖励,确定所述多臂老虎机模型的积累遗憾,包括:
4.如权利要求1所述的一种数据索引在线自动调优的方法,其特征在于,所述基于索引选择的流程建立多臂老虎机模型,包括:
5.如权利要求1所述的一种数据索引在线自动调优的方法,其特征在于,所述基于当前工作负载生成新的索引臂,包括:
6.如权利要求5所述的一种数据索引在线自动调优的方法,其特征在于,所述基于所述查询特征生成所有有助于查询的相关索引的信息之后,还包括:
7.如权利要求1所述的一种数据索引在线自动调优的方法,其特征在于,将所述新的索引臂加入原索引臂集之前,还包括:将所述新的索引臂表示为所述多臂老虎机模型可接受的向量表示。
8.如权利要求1所述的一种数据索引在线自动调优的方法,其特征在于,所述通过所述多臂老虎机模型中的贪心预测模型,确定所述新的索引臂集中的执行超级臂,包括:
9.如权利要求1所述的一种数据索引在线自动调优的方法,其特征在于,所述通过所述多臂老虎机模型中的贪心预测模型,确定所述新的索引臂集中的执行超级臂之后,还包括:
10.一种数据索引在线自动调优系统,其特征在于,所述系统包括:模型建立单元、索引臂单元、超级臂单元;