本发明涉及数据库技术,特别是涉及一种数据库操作语句的统计优化方法、存储介质与设备。
背景技术:
1、数据库产品一般提供top sql视图来记录消耗资源最多sql(structured querylanguage,数据库操纵)语句,所谓资源消耗是指sql执行次数、执行时间,io(input输入/output输出)时间,io次数,io字节数,消耗的内存大小,解析次数,生成计划的次数等。
2、top sql的检索条件一般是基于sql语句的解析结果后的一个hash(哈希/散列)值:queryid。
3、影响queryid值的因素比较多,包括sql语句的各解析部分,比如投影列,过滤条件、连接条件,排序字段,分组字段,引用的关系表列表等。
4、当一个关系表被删除后,再次重新创建该表,即使建立的表名和表结构相同,但是数据库系统为其分配了新的关系表id,它已经是一个新的表了。即使是相同的sql语句查询该表,得到的queryid值已经不一样了。
5、该情况在使用临时表的情况下尤其突出,数据库里临时表在会话里创建,在会话结束的时候自动被删除。如果有1000个会话都使用了临时表,则即使临时表结构完全一致,查询临时表的sql语句也完全一致,仍然会有1000个不同的sql语句被统计到。这会干扰到dba(database administrator,数据库管理员)分析top sql。
技术实现思路
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、根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
1.一种数据库操作语句的统计优化方法,包括:
2.根据权利要求1所述的数据库操作语句的统计优化方法,其中,
3.根据权利要求2所述的数据库操作语句的统计优化方法,其中,
4.根据权利要求1所述的数据库操作语句的统计优化方法,其中,
5.根据权利要求1所述的数据库操作语句的统计优化方法,其中,
6.根据权利要求1所述的数据库操作语句的统计优化方法,其中,
7.根据权利要求6所述的数据库操作语句的统计优化方法,其中,
8.根据权利要求7所述的数据库操作语句的统计优化方法,其中,
9.一种机器可读存储介质,其上存储有机器可执行程序,所述机器可执行程序被处理器执行时实现根据权利要求1至8任一项所述的数据库操作语句的统计优化方法。
10.一种计算机设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的机器可执行程序,并且所述处理器执行所述机器可执行程序时实现根据权利要求1至8任一项所述的数据库操作语句的统计优化方法。