[发明专利]一种基于学习的索引推荐与评估方法在审
申请号: | 202210983393.7 | 申请日: | 2022-08-16 |
公开(公告)号: | CN115408386A | 公开(公告)日: | 2022-11-29 |
发明(设计)人: | 蔡鹏;叶凯凯;彭淦;李凯;蔡金龙;沈裕锋;粟含;徐威远;周汉辰;张宇 | 申请(专利权)人: | 华东师范大学 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/242;G06F16/2453 |
代理公司: | 上海蓝迪专利商标事务所(普通合伙) 31215 | 代理人: | 徐筱梅;张翔 |
地址: | 200241 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 学习 索引 推荐 评估 方法 | ||
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:将多列特征用于模型训练,训练多列索引模型。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华东师范大学,未经华东师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210983393.7/1.html,转载请声明来源钻瓜专利网。