一种基于学习的索引推荐与评估方法

文档序号:32393587发布日期:2022-11-30 09:20阅读:来源:国知局

技术特征:
1.一种基于学习的索引推荐与评估方法,其特征在于,该方法包括专家经验驱动的索引推荐和基于抽样的索引评估;所述专家经验驱动的索引推荐实现基于历史数据中索引建立经验进行索引推荐;所述基于抽样的索引评估实现在抽样数据库上进行索引评估给出置信度高的推荐结果;具体步骤如下:步骤1:专家经验驱动的索引推荐a1:根据用户输入的数据库连接信息抽取对应数据库的表信息、索引信息并保存;所述表信息为表名、列名、cardinality及表行数;所述索引信息为索引对应的列名;a2:根据用户提供的结构化查询语言即sql语句来调用sql解析程序获取sql信息,sql信息包括抽取单列信息及多列间关系信息;a3:将步骤a1中的表信息和步骤a2中的单列信息进行提取并拼接,作为单列特征,将步骤a1中的索引信息作为单列特征的标签,然后训练单列索引模型;a4:根据单列特征构造哈希表,将步骤a2中的多列间关系信息进行提取,并与步骤a3中的单列特征进行拼接,作为多列特征,将步骤a1中的索引信息作为多列特征的标签,然后训练多列索引模型;a5:调用sql解析程序来对用户输入的sql语句进行特征抽取,并与模型训练阶段保存下来数据库表信息进行拼接生成单列和多列特征,输入步骤a3中的单列索引模型和步骤a4中的多列索引模型进行索引推荐;a6:将索引推荐结果以json文件输出,文件包括sql语句及推荐索引;步骤2:基于抽样的索引评估b1:解析索引推荐结果的json文件,获取各查询涉及的所有的数据表schema,包括主键、外键和索引信息,创建测试环境库表;b2:从线上数据库根据用户设置的比例抽样并转储数据,导入查询中出现的数据表至测试数据库中;b3:在不同推荐索引配置下遍历所有查询,在验证环境数据规模下,获得查询建立推荐的索引前后的评估指标,评估指标包括执行时间、扫描行数及查询代价;b4:将索引评估结果以json文件输出,文件包括sql语句、评估索引及评估指标。2.如权利要求1所述的索引推荐与评估方法,其特征在于,所述步骤a3,具体包括如下步骤:a31:提取列的数据类型;a32:提取列在sql中出现位置;a33:提取列所在条件表达式;a34:提取列的所在函数信息;a35:为提取的所有特征编号并拼接,以索引信息作为标签;a36:将单列特征用于模型训练,训练单列索引模型。3.如权利要求1所述的索引推荐与评估方法,其特征在于,所述步骤a4,具体包括如下步骤:a41:根据单列特征构造哈希表,key值为单列特征标识符,value值为该特征向量具备的单列特征;a42:组合出现在同一sql的同一table的任意多列,将列对应的单列特征标识符进行拼
接,构造初步多列特征,将初步多列特征集合命名为fn_start_train;a43:遍历fn_start_train,根据fn_start_train中每个初步多列特征包含的单列特征标识符,提取多列间关系信息,放入多列间关系特征集fn_merge_train;a44:将fn_start_train和fn_merge_train根据单列特征标识符进行横向拼接,以对应的索引信息作为标签,得到最终的多列特征fn_end_train;a45:将多列特征用于模型训练,训练多列索引模型。

技术总结
本发明公开了一种基于学习的索引推荐与评估方法,包括专家经验驱动的索引推荐和基于抽样的索引评估。专家经验驱动的索引推荐从历史数据中技术人员对各类SQL查询和其相关的数据表上真实建立索引的情况中提取预先定义的特征,训练机器学习的分类模型,以此对给定的SQL查询和数据库统计信息,进行索引推荐。基于抽样的索引评估对给定的SQL查询和其推荐索引配置,从源数据库中利用抽样方法抽取一定数量的数据生成测试数据库,在测试数据库上从多个维度评估推荐索引的效果,给出最终的推荐结果。本发明从两个维度进行了索引推荐工作,即通过学习的方法高效给出了推荐索引配置,并通过评估的方法提高了最终推荐索引结果的置信度。度。度。


技术研发人员:蔡鹏 叶凯凯 彭淦 李凯 蔡金龙 沈裕锋 粟含 徐威远 周汉辰 张宇
受保护的技术使用者:华东师范大学
技术研发日:2022.08.16
技术公布日:2022/11/29
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1