云原生数据仓库 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宏观统计:建立均值与最值比较以及每个Pattern关键指标的总量及其占比。
异常SQL排查:排查出异于历史的Pattern并提供钻取功能,直达问题SQL,获取诊断结果。
注意事项
仅支持查看过去14天内的SQL Pattern记录,每次查询的时间范围最长为24小时。
操作步骤
登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,在数仓版页签,单击目标集群ID。
在左侧导航栏,单击诊断与优化。
单击SQL Pattern页签。
默认展示最近30分钟的SQL Pattern。您可以通过SQL关键字或时间范围搜索SQL Pattern。
SQL Pattern列表各项参数说明如下:
参数
说明
操作
单击查看详情,查看特定SQL Pattern的详细信息。更多信息,请参见Pattern分析。
用户名
提交Pattern相关SQL的数据库用户名。
客户端IP
提交Pattern相关SQL的客户端IP地址。
SQL Pattern
SQL Pattern的具体语句。您可以单击复制完整的SQL。
CPU Cost总量
在查询时间范围内,Pattern相关SQL执行时占用CPU的总时间。括号中的百分比表示该Pattern执行时占用CPU的总时间占所有Pattern执行时占用CPU的总时间的比例,若比例超过30%将自动高亮显示。
通过观察Pattern的CPU Cost占比,可以初步判断该时段内某类查询对CPU消耗的影响是否较大,您也可以结合CPU监控指标进一步分析。
峰值内存总量
在查询时间范围内,Pattern相关SQL使用的峰值内存总和。括号中的百分比表示该Pattern峰值内存总和占所有Pattern峰值内存总和的比例,若比例超过30%将自动高亮显示。
通过观察Pattern的峰值内存占比,可以初步判断该时段内某类查询对内存消耗的影响是否较大,您也可以结合计算内存使用率监控指标进行进一步分析。
耗时总量
在查询时间范围内,Pattern相关SQL的执行耗时总和。括号中的百分比表示该Pattern的执行耗时总和占所有Pattern执行耗时总和的比例,若比例超过30%将自动高亮显示。
通过观察Pattern的执行耗时占比,可以初步判断该时段内某类查询对查询RT监控指标增长的影响是否较大,您也可以结合查询RT监控指标进一步分析。
数据读取总量
在查询时间范围内,Pattern相关SQL读取数据的总量。括号中的百分比表示该Pattern读取数据总量占所有Pattern读取数据总量的比例,若比例超过30%将自动高亮显示。
通过观察Pattern的读取数据占比,可以初步判断该时段内某类查询的数据读取量是否较大,您也可以结合表读取结果数据量监控指标进一步分析。
数据读取Cost总量
在查询时间范围内,Pattern相关SQL读取数据时占用CPU的总时间。括号中的百分比表示该Pattern读取数据占用CPU的总时间占所有Pattern读取数据占用CPU总时间的比例,若比例超过30%将自动高亮显示。
通过观察Pattern的读取数据占比,可以初步判断该时段内某类查询的读取数据时占用CPU的总时间是否较大。如果读取数据时占用CPU的总时间增大,则会影响预留节点(存储节点)的CPU使用率,您也可以结合预留节点CPU监控指标或原存储节点CPU监控指标进一步分析。
平均CPU Cost
在查询时间范围内,Pattern相关SQL执行时占用CPU时间的均值。
最大CPU Cost
在查询时间范围内,Pattern相关SQL执行时占用CPU时间的最大值。
平均表读取CPU Cost
在查询时间范围内,Pattern相关SQL读取数据时占用CPU时间的均值。
最大表读取CPU Cost
在查询时间范围内,Pattern相关SQL的读取数据时占用CPU时间的最大值。
执行次数
在查询时间范围内,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 Pattern扫描的数据库表。
Pattern分析
Pattern分析页面以图形化的方式展示SQL在时间维度上的执行次数、查询耗时、执行耗时、扫描量以及峰值内存等重要指标,其中查询耗时、执行耗时、扫描量和峰值内存指标分别提供了最大值和平均值,方便用户进行比较和分析。SQL列表提供了当前Pattern在分析时段内的所有相关的SQL,您可以单击诊断,查看SQL的诊断结果和执行计划,具体操作,参见使用执行计划分析查询。
在SQL Pattern页签的SQL Pattern列表中,单击查看详情,进入Pattern分析页面,您可以查看SQL Pattern多个指标的时序变化和SQL列表。