慢日志分析

慢日志分析

更新时间:

慢日志问题极大地影响数据库的稳定性,当数据库出现负载高、性能抖动等问题时,数据库管理员或开发首先会查看是否有慢日志在执行。数据库自治服务DAS(Database Autonomy Service)支持慢日志分析功能,会统计并分析数据库中执行时间超过阈值的SQL语句,并提供相应的治理方案,帮助您快速定位并解决数据库性能问题,提高系统的稳定性和可靠性。

前提条件

数据库引擎为RDS MySQL。

说明

不支持RDS MySQL基础系列。

注意事项

如果SQL语句长度超过8192字节,慢SQL将不记录整条SQL语句。

进入慢SQL页面

  1. 访问 RDS实例列表 ,在上方选择地域,然后单击目标实例ID。
  2. 在左侧导航栏中,选择 自治服务 > 慢SQL

  3. 慢日志分析 页签,选择需要查看的时间段,查看该时间段内 慢日志趋势 慢日志统计 慢日志明细

    说明

    选择时间范围时,查询结束时间需晚于查询开始时间,且查询开始时间和查询结束时间的间隔不能超过一天,您可以查询最近一个月内的慢日志信息。

    • 您可以在 慢日志趋势 图中单击某个时间点,查看该时间点的 慢日志统计 慢日志明细

    • 您可以单击 导出慢日志 ,将慢日志信息保存到本地查看。

      重要

      最多支持导出1000条慢日志,如果您需要获取所有的慢日志,可以通过 查看慢日志明细 API接口批量获取慢日志。

    • 慢日志统计 区域:

      • 单击目标SQL模板 操作 列的 样本 ,查看该SQL的 慢日志样本

      • 单击目标SQL模板 操作 列的 优化 ,在弹出的 SQL诊断优化 对话框中,查看SQL诊断结果。

        若您采纳诊断建议,单击页面右上角的 复制 ,并将优化后的SQL粘贴到数据库客户端或DMS上执行,若不采纳诊断建议,可直接单击 取消 结束诊断。

        说明

        DAS会根据SQL的复杂程度、对应表的数据量、数据库负载等进行SQL诊断,诊断建议的返回时间可能会超过20秒。完成诊断后,SQL诊断引擎会给出诊断结果、优化建议和预期优化收益,您可以根据诊断结果确认是否采纳建议。

        您也可以单击 专家服务 ,付费购买数据库专家服务,为您提供云数据库产品本身能力范围之外的专业的数据库专家服务,主要包括紧急救援、健康诊断、性能调优、护航保障、数据迁移等。

      • 单击目标SQL模板 操作 列的 限流 ,在 SQL限流 页面配置限流参数,对目标SQ进行限流。详细操作请参见 SQL限流

    • 慢日志明细 区域,单击目标SQL 操作 列的 优化 限流 ,也可对目标SQL进行 SQL诊断优化 SQL限流

相关说明

以下几点针对 慢日志分析 中的重点指标进行说明:

  • 最大扫描行数:慢日志统计中的指标之一。查询时间范围内慢SQL中扫描行数最大的数值。

  • SQL模板:同一类的SQL进行模板化后,生成一个模板。

  • 慢日志样本:对SQL模板进行定时采样的数据。由于样本统计信息不完全,详情请参见 查看慢日志明细

  • 慢日志明细:RDS默认开启慢日志功能。在控制台显示超过 long_query_time 设定值的SQL。

    针对RDS MySQL,在开启了 log_queries_not_using_indexes 参数后,会记录没有使用索引的sql,详情请参见 https://dev.mysql.com/doc/refman/8.0/en/slow-query-log.html

常见问题

Q:为什么会出现慢日志记录的SQL执行完成时间与SQL语句的实际执行时间不同?

A:通常情况下是执行SQL语句修改了时区。慢日志记录的SQL执行时间的时区,存在会话级别、数据库级别和系统级别。慢日志时间设置逻辑为:当数据库存在时区时,以数据库的时区为准,否则以系统时区为准。当通过SQL语句修改了会话级别的时区时,可能导致慢日志记录的时区无法正常转换。

相关文档