AnalyticDB MySQL版的实时统计分析功能提供了SQL Pattern指标特性,有效提升智能诊断效率,能够对相似的SQL进行聚合,并呈现出聚合后的特性。
背景信息
SQL Pattern是依托于全量且实时的SQL而产生的功能,通过对SQL进行分类诊断和分析,聚合相似SQL为一类SQL,有效提升智能诊断的效率。同时,SQL Pattern的聚合结果能作为数据库优化的有效依据。针对导致实例压力过大的Bad SQL,用户还可以通过拦截功能,对其进行拦截,快速恢复实例,详情请参见Persist plan and Query-Blocker。
功能说明
SQL Pattern具备以下功能。
- Pattern聚合:根据SQL文本,将相似的SQL进行分组。
- Pattern宏观统计:建立均值与最值比较。
- 异常SQL排查:排查出异于历史的Pattern并提供钻取功能,直达问题SQL,获取诊断结果。
操作步骤
- 登录云原生数据仓库AnalyticDB MySQL控制台。
- 在页面左上角,选择集群所在地域。
- 在左侧导航栏,单击集群列表。
- 在数仓版(3.0)页签下,单击目标集群ID。
- 在左侧导航栏,单击诊断与优化。
- 单击SQL Pattern页签。默认展示最近30分钟的SQL Pattern。您可以通过SQL关键字或时间范围搜索SQL Pattern。SQL Pattern列表各项参数说明如下:
参数 说明 操作 单击查看详情,查看特定SQL Pattern的详细信息。更多信息,请参见查询详情。 SQL Pattern SQL Pattern的具体语句。您可以单击 复制完整的SQL。
用户名 提交Pattern相关SQL的数据库用户名。 客户端IP 提交Pattern相关SQL的客户端IP地址。 表名 SQL Pattern扫描的数据库表。 创建时间 在查询时间范围内,Pattern相关SQL的最早提交时间。 执行次数 在查询时间范围内,Pattern相关SQL的执行次数。如果实例出现资源水位突增的情况,用户可以通过执行次数排序,查看实例运行异常时段哪些SQL执行次数较多,并进一步分析这些SQL执行次数突增是否正常。 失败次数 在查询时间范围内,Pattern相关SQL的执行失败次数。 平均总耗时 在查询时间范围内,Pattern相关SQL的平均查询耗时,单位毫秒(ms)。 最大总耗时 在查询时间范围内,Pattern相关SQL的最大查询耗时,单位毫秒(ms)。通过比较最大总耗时和平均查询时间,可以了解指定Pattern的耗时增加是否受到其他SQL的影响。如果在实例运行正常时段内最大总耗时和平均查询时间接近,那么在实例运行异常时段当前pattern的耗时增加可能是受到了其他SQL的影响。 平均执行耗时 在查询时间范围内,Pattern相关SQL的平均执行耗时,单位毫秒(ms)。 最大执行耗时 在查询时间范围内,Pattern相关SQL的最大执行耗时,单位毫秒(ms)。执行耗时的定义,详见查询监控图和查询列表介绍。 平均峰值内存 在查询时间范围内,Pattern相关SQL的平均峰值内存,单位Byte。 最大峰值内存 在查询时间范围内,Pattern相关SQL的最大峰值内存,单位Byte。通过比较最大峰值内存和平均峰值内存,您可以判断指定SQL使用的内存资源的稳定性。如果最大峰值内存远大于平均峰值内存,说明当前Pattern的SQL可能存在扫描数据量增加或者执行计划改变的问题,可以单击查看详情,在查询详情页面,查看SQL列表进一步定位原因。 平均扫描量 在查询时间范围内,Pattern相关SQL的平均扫描量,单位MB。 最大扫描量 在查询时间范围内,Pattern相关SQL的最大扫描量,单位MB。通过比较最大扫描量和平均扫描量,可以判断同类Pattern的SQL的数据读取量的稳定性。如果出现最大扫描量远大于平均扫描量的情况,说明数据读取量不稳定,则需判断是否为正常情况。
查询详情
查询详情页面以图形化的方式展示SQL在时间维度上的执行次数、查询耗时、执行耗时、扫描量以及峰值内存等重要指标,其中查询耗时、执行耗时、扫描量和峰值内存指标分别提供了最大值和平均值,方便用户进行比较和分析。SQL列表提供了当前Pattern在分析时段内的所有相关的SQL,您可以单击诊断,查看SQL的诊断结果和执行计划,具体操作,参见使用执行计划分析查询。
在SQL Pattern页签的SQL Pattern列表中,单击查看详情,进入查询详情页面,您可以查看SQL Pattern多个指标的时序变化和SQL列表。