AnalyticDB MySQL版集群提供了SQL诊断功能,支持通过多种维度检索出符合条件的SQL查询(如慢查询),并将检索结果以图像化的方式展示,您还可以将检索结果下载保存到本地进行查看。本文介绍如何使用SQL诊断中的查询监控图和查询列表。

查询监控图

您可以在SQL诊断中的查询监控区域查看指定时间范围内,查询执行耗时的分布情况,方便快速定位执行耗时长的查询。1
说明
  • 图中每个色块即代表一次查询。
  • 矩形的颜色没有特殊含义,仅用来区分不同查询。色块长度越长,表示对应查询的执行耗时越长。
  • 将鼠标放在色块上即可查看对应查询的相关信息(例如,查询开始或结束时间、扫描量等),单击详情即可进入目标查询的详情页来查看查询属性查询语句执行计划等信息。更多详情,请参见使用执行计划分析查询
  • 查询监控中最多展示1万个查询,每个查询的具体信息会在监控图下方的SQL列表中展示。更多详情,请参见查询列表
  • 查询监控仅展示整体检索(如检索最近5分钟耗时最长的100个查询)的结果,而SQL列表右上角的高级搜索不会影响查询监控的结果展示。更多详情,请参见检索方式

查询列表

相较于查询监控图,查询列表能够展示SQL查询的更多信息,例如具体的SQL语句、访问源地址等。同时您还可以通过查询列表右上角的高级搜索功能对列表中的结果进行进一步筛选(这里的筛选结果并不会影响查询监控图的结果展示),帮助您更精准地定位到有问题的查询。2
字段名 字段说明 使用说明
操作 单击诊断,查看执行详情,包括SQL语句、统计信息、执行计划以及诊断结果等。 进入诊断页面,单击执行计划分析查询。具体操作,请参见使用执行计划分析查询
SQL SQL语句。 用户可以单击2复制完整SQL。
开始时间 查询提交的时间。
访问源地址 与客户端建立连接的IP地址。 诊断与优化页面,单击连接信息,查看访问源地址。
数据库 客户端建立连接的数据库名。 用户可以使用高级搜索功能搜索出数据库变更的SQL。
状态 SQL语句的执行状态,包括:
  • 已完成
  • 运行中
  • 失败
总耗时 SQL语句从提交到最终执行完成的总耗时。 总耗时=排队耗时+执行计划耗时+执行耗时。
排队耗时 SQL语句从提交到AnalyticDB MySQL版接入节点后到开始执行前的排队时间。 AnalyticDB MySQL版在接入节点进行了流量控制,当并发较大时,超过流量控制队列大小的查询会进行排队,且排队时间较长。如果此时计算资源水位较低,可以尝试调大队列,具体操作,请参见查询流量控制;如果此时计算资源水位较高,则需要进行Bad SQL查找并定位原因。关于接入节点的详情,请参见整体架构
执行计划耗时 生成执行计划的耗时。 SQl语句提交到接入节点后会生成执行计划,执行计划耗时较长的可能原因包括:
  • SQL语句比较复杂;
  • 接入节点压力较大。
如果SQL语句较复杂,可以尝试降低SQL复杂度,如减少Join的个数;如果接入节点压力较大,可以查看是否有较多数据返回到客户端或查询并发是否较大,具体详见Query级别诊断结果
执行耗时 SQL语句的执行耗时。 可以根据执行耗时字段排序,排除排队耗时和执行计划耗时的影响,查找到消耗资源的SQL。
返回数据 Select语句返回到客户端的数据量。 返回到客户端的数据量不宜过大,数据量过大会导致查询占用前端队列资源,影响其他查询的提交和执行。用户可以根据返回数据大小进行排序,找到返回数据量较大的查询。
用户名 客户端建立连接时使用的用户名。 诊断与优化页面,单击连接信息,查看用户名和用户连接数。
峰值内存 查询消耗的峰值内存。 AnalyticDB MySQL版在执行SQL的过程中,是分阶段(Stage)执行的,有依赖关系的阶段会串行执行,无依赖关系的阶段会并行执行,因此查询消耗的内存存在一个峰值,峰值内存可以体现查询对于内存资源的占用量。
扫描数据 查询从存储层返回到计算层的数据量。 扫描数据量的大小在一定程度上能体现查询对存储层的压力,读取的数据量越大,消耗的磁盘IO资源也越大,在计算层的处理也会消耗更多资源,影响查询速度。
总的Stage个数 查询生成的总的Stage个数。 Stage的个数多少,在一定程度上能体现一条查询语句的复杂度,Stage个数越多,AnalyticDB MySQL版在执行过程中需进行的网络交互就越多,对系统整体的压力也越大。如果某些查询的Stage个数较多,需要进行相应的调优。关于Stage的概念,请参见查询流程和执行计划
ETL的写表行数 ETL相关SQL写出到目标表的行数。
您可以在SQL列表页签下执行如下操作:
支持的操作 说明
下载 单击下载即可将当前的查询结果保存为Excel表格,查询结果表格会自动保存在最近5次的下载的下拉列表中。
说明 当前单次最多支持下载10万条记录。
最近5次的下载 最近5次的下载下拉列表中选择需要下载的SQL查询搜索结果即可完成下载。
高级搜索 单击显示高级搜索,根据业务需要选择查询维度,例如按照资源组访问源地址维度对查询监控的搜索结果进行进一步的筛查。
诊断 单击操作栏中的诊断,即可进入目标查询的详情页来查看查询属性查询语句执行计划等信息。更多详情,请参见使用执行计划分析查询
说明
  • SQL列表右上角的高级搜索支持对整体检索的结果进行进一步筛选,筛选条件的可选取值是整体检索结果中已有的取值,而不是当前AnalyticDB MySQL版集群中的所有取值。更多详情,请参见检索方式
  • 当整体检索条件选择正在运行的查询时,检索结果仅显示执行耗时超过10s的SQL查询详情,且在SQL列表中会展示资源消耗排名列,资源消耗排名的数值越小,说明该查询消耗的CPU、内存等资源越多。
  • SQL列表SQL列,最长支持显示5120个字符,超出字符限制的SQL语句会被截断显示。您可以在下载的Excel文件中,或目标查询详情页的查询语句页签下查看完整的SQL。