System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据处理,尤其涉及一种索引推荐方法、装置、电子设备、存储介质及程序产品。
技术介绍
1、在企业业务的快速拓展过程中,其用户量也会显著增长,在业务项目中作为数据存储核心的数据库承载着日益增长的数据量和日益复杂的业务逻辑,执行时间长、内存占用大、拖累系统整体性能的慢查询语句也出现得越来越频繁。
2、导致慢查询语句的常见原因是索引的缺失或不合理设置。当前为结构化查询语句(structured query language,sql)创建索引、推荐索引的主要方法是依赖开发工程师的经验和直觉。
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、候选索引确定模块,用于基于慢查询语句中多个字段的字段区分度和字段出现次数,确定候选复合索引;
36、最优索引确定模块,用于基于所述候选复合索引的执行代价,确定最优推荐索引。
37、本专利技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述索引推荐方法。
38、本专利技术还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述索引推荐方法。
39、本专利技术还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述索引推荐方法。
40、本专利技术提供的索引推荐方法、装置、电子设备、存储介质及程序产品,针对已有索引执行效果不佳的慢查询语句,充分利用了字段区分度和字段出现次数两个维度的语义特征,并通过候选复合索引的执行代价进行量化评估,更全面地客观评估了索引的优劣,克服了依赖主观经验创建的索引与实际情况不符的情形,推荐的复合索引相较于单列索引更能提高数据库的语句查询性能,避免慢查询发生,提供了更好的用户体验。
本文档来自技高网...【技术保护点】
1.一种索引推荐方法,其特征在于,包括:
2.根据权利要求1所述的索引推荐方法,其特征在于,在所述慢查询语句包括等值查询字段时,所述基于慢查询语句中多个字段的字段区分度和字段出现次数,确定候选复合索引,包括:
3.根据权利要求2所述的索引推荐方法,其特征在于,在所述慢查询语句还包括非等值查询字段时,所述根据完成排序的所述等值查询字段,确定索引字段序列,包括:
4.根据权利要求1所述的索引推荐方法,其特征在于,在所述慢查询语句仅包括非等值查询字段时,所述基于慢查询语句中多个字段的字段区分度和字段出现次数,确定候选复合索引,包括:
5.根据权利要求2-4任一所述的索引推荐方法,其特征在于,针对每一所述索引字段序列,所述基于所述索引字段序列,确定所述候选复合索引,包括:
6.根据权利要求1所述的索引推荐方法,其特征在于,在所述候选复合索引为多个时,所述基于所述候选复合索引的执行代价,确定最优推荐索引,包括:
7.根据权利要求1所述的索引推荐方法,其特征在于,在所述基于所述候选复合索引的执行代价,确定最优推荐索引之前
8.根据权利要求1所述的索引推荐方法,其特征在于,所述慢查询语句是基于以下方式确定的:
9.一种索引推荐装置,其特征在于,包括:
10.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8任一项所述索引推荐方法。
11.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述索引推荐方法。
12.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述索引推荐方法。
...【技术特征摘要】
1.一种索引推荐方法,其特征在于,包括:
2.根据权利要求1所述的索引推荐方法,其特征在于,在所述慢查询语句包括等值查询字段时,所述基于慢查询语句中多个字段的字段区分度和字段出现次数,确定候选复合索引,包括:
3.根据权利要求2所述的索引推荐方法,其特征在于,在所述慢查询语句还包括非等值查询字段时,所述根据完成排序的所述等值查询字段,确定索引字段序列,包括:
4.根据权利要求1所述的索引推荐方法,其特征在于,在所述慢查询语句仅包括非等值查询字段时,所述基于慢查询语句中多个字段的字段区分度和字段出现次数,确定候选复合索引,包括:
5.根据权利要求2-4任一所述的索引推荐方法,其特征在于,针对每一所述索引字段序列,所述基于所述索引字段序列,确定所述候选复合索引,包括:
6.根据权利要求1所述的索引推荐方法,其特征在于,在所述候选复合索引为多个时,所述基于所述...
【专利技术属性】
技术研发人员:周世芬,余贤雷,向文辉,方炜,荣玉军,
申请(专利权)人:中移杭州信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。