System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据处理领域,涉及一种慢查询日志的生成方法、装置、设备及介质。
技术介绍
1、随着科技的进步,慢查询日志被广泛运用于数据库管理系统中使用,用户记录执行时间超过慢查询阈值的查询语句。慢查询日志适用于监控和调优数据库性能的场景,例如网站、应用程序等需要高效数据库查询的系统,通过慢查询日志可以找出导致性能下降的查询语句,进而进行优化和改进数据库的性能。
2、目前,慢查询日志是由多个慢查询语句组成的,而确认数据库中查询语句为慢查询语句的主要方式是比较查询语句的执行时间和系统设定的慢查询阈值,当查询语句的执行时间超过慢查询阈值时,就会被认为是慢查询语句。然而,查询语句的执行时间受数据库性能的影响,查询语句在不同时段的执行时间可能是不同的,导致原本属于慢查询语句的查询语句未被检测出,这些未被检测出的慢查询语句会导致数据库性能下降,进而严重影响在线业务运行,甚至导致服务器宕机。
技术实现思路
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、所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任意一项所述的慢查询日志的生成方法。
32、为了解决上述问题,本专利技术还提供一种计算机可读存储介质,所述计算机程序被处理器执行时实现所述的慢查询日志的生成方法。
33、在本实施例中,将目标数据库中的所有查询语句根据慢查询阈值分为第一数据集和第二数据集,能快速地筛选出部分慢查询语句,减少了后续筛选慢查询的处理资源,提高了慢查询的检测效率;通过获取目标数据库的请求标识,能精准地匹配到目标数据库,进而获取目标数据库的所有查询语句,避免获取错误的查询语句,导致检测结果不精确;通过以历史执行时间的中间值作为慢查询阈值,能够排除极端值的影响,且由于中间值对数据的分布变化相对稳定,不容易受到异常数据或噪声数据的干扰,提供相对稳定的基准,使得慢查询阈值的设定更加合理;通过获取未走索引的查询语句后进行分类,得到伪索引查询语句和无索引查询语句,将无索引查询语句分类出来,提高了慢查询检测的精准度,将伪索引查询语句分类出来,能针对索引进行后续的处理,不仅提高了慢查询的精准度,还能提高查询语句的执行效率。
34、在本实施例中,通过对小于或等于慢查询阈值的查询语句进行再一次检测,采取查询语句的执行参数的介入,检测出索引关系失效的查询语句和无索引关系的查询语句,提高了慢查询日志的生成准确度,降低了后台处理时间,极大地避免了由于慢查询过多导致的宕机情况。
本文档来自技高网...【技术保护点】
1.一种慢查询日志的生成方法,其特征在于,所述方法包括:
2.如权利要求1所述的慢查询日志的生成方法,其特征在于,在所述从目标数据库中获取查询语句及对应的执行时间之前,所述方法还包括:
3.如权利要求1所述的慢查询日志的生成方法,其特征在于,所述从目标数据库中获取查询语句及对应的执行时间,包括:
4.如权利要求1所述的慢查询日志的生成方法,其特征在于,所述从所述第二数据集中获取未走索引的查询语句,生成第三数据集,包括:
5.如权利要求1所述的慢查询日志的生成方法,其特征在于,所述每个查询语句的执行参数包括所述每个查询语句的扫描次数、扫描行数、最大执行时间和平均执行时间。
6.如权利要求1所述的慢查询日志的生成方法,其特征在于,在所述根据所述目标数据库所存储索引的索引状态判断所述伪索引查询语句集中每个查询语句的索引状态是否无效之前,所述方法还包括:
7.如权利要求1所述的慢查询日志的生成方法,其特征在于,所述根据所述目标数据库所存储索引的索引状态判断所述伪索引查询语句集中每个查询语句的索引状态是否无效,得到索引
8.一种慢查询日志的生成装置,其特征在于,所述装置包括:
9.一种电子设备,其特征在于,所述电子设备包括:
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任意一项所述的慢查询日志的生成方法。
...【技术特征摘要】
1.一种慢查询日志的生成方法,其特征在于,所述方法包括:
2.如权利要求1所述的慢查询日志的生成方法,其特征在于,在所述从目标数据库中获取查询语句及对应的执行时间之前,所述方法还包括:
3.如权利要求1所述的慢查询日志的生成方法,其特征在于,所述从目标数据库中获取查询语句及对应的执行时间,包括:
4.如权利要求1所述的慢查询日志的生成方法,其特征在于,所述从所述第二数据集中获取未走索引的查询语句,生成第三数据集,包括:
5.如权利要求1所述的慢查询日志的生成方法,其特征在于,所述每个查询语句的执行参数包括所述每个查询语句的扫描次数、扫描行数、最大执行时间和平均执行时间。
6.如权利要求1所述的...
【专利技术属性】
技术研发人员:康杰,
申请(专利权)人:深圳乐信软件技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。