慢查询分析

最近更新时间:2019-06-12 11:26:16

功能说明

超过指定时间的 SQL 语句查询称为“慢查询”,对应语句称为“慢查询语句(简称慢 SQL)”,而数据库管理员(DBA)对慢查询语句进行分析并找到慢查询出现原因的过程叫做慢查询分析。

云数据库 PostgreSQL 控制台 在实例管理页的【性能优化】模块下,提供慢查询分析能力。如下图:

主要参数说明

慢查询分析默认设置

  • 慢查询功能:默认开启。
  • 慢 SQL 记录时间(log_min_duration_statement):默认配置为1s,即慢查询语句查询时间超过1s的才被记录。如需调整,请 提交工单,说明实例 ID 和需要配置该参数的时间可修改。
  • 分析数据输出延迟:1 - 5分钟。
  • 日志记录时长:7天(最大最近10000条)。

分析列表字段说明

目前慢查询分析功能对慢 SQL 有如下分析:

基本信息

  • 最后执行时间:在统计范围内,该抽象语句最后一次出现的时间,由于某些预计执行较长,我们统一按语句执行的 begin_time 记录。
  • 抽象后的 SQL 语句:去掉慢 SQL 中常数后的语句,抽象后的语句可以将同类同性质的语句进行汇总统计,以方便您更好的分析。
  • 数据库:该语句调用了哪个数据库。
  • 帐号:该语句是使用哪个帐号来运行的。
  • 首次执行时间:在统计范围内,该慢 SQL 第一次出现的时间(抽象后汇总后,可能有很多条记录)。
  • 总次数:在统计范围内,该慢 SQL 总共出现的次数。
  • 总次数占比:在统计范围内,该慢 SQL 总共出现的次数,占所有慢 SQL 出现的次数的比值。
  • 发送行数:在统计范围内,数据库服务器发送(返回)给客户端多少行结果。

查询信息统计

  • 总时间:在统计范围内,慢查询语句查询总耗时。
  • 总时间占比:在统计范围内,慢查询语句占所有慢查询语句时间的占比。
  • 平均时间:慢查询语句总时间除以总次数的平均时间。
  • 最小时间:所有该条抽象语句中,慢查询语句出现的最小时间;用于帮助判断该语句是否偶发性事件。
  • 最大时间:所有该条抽象语句中,慢查询语句出现的最大时间;用于帮助判断该语句是否偶发性事件。

读写数据统计

  • 读共享内存块数:在统计范围内,该慢 SQL 总共从共享内存中读取多数据。
  • 写共享内存块数:在统计范围内,该慢 SQL 总共写入共享内存中多数据。

读写 IO 耗时统计

  • 读 IO 总耗时:在统计范围内,该慢 SQL 总共消耗多少读 IO 时间;用于帮助判断该语句是否在做全盘扫描等耗时操作数据。
  • 写 IO 总耗时:在统计范围内,该慢 SQL 总共消耗多少写 IO 时间;用于帮助判断该语句是否一次性写入大量(临时)数据。