SQL洞察

更新时间: 2023-06-29 18:00:39

MSE提供秒级的SQL洞察,具备完善的SQL执行审计能力,可以有效地评估系统的整体表现。

背景信息

系统中出现慢SQL可能会导致CPU、负载异常和系统资源耗尽等情况。严重的慢SQL发生后可能会拖垮整个数据库,对线上业务产生阻断性的风险。例如,以下场景需要SQL治理:

  • SQL语句处理时间比较长导致线上业务接口出现大量的慢调用,需要快速定位有问题的慢SQL。

  • 在项目初期没有对SQL的性能做好考量,随着业务的发展,用户量级的增加,线上遗留老接口的SQL逐渐成为性能瓶颈。

  • 由于SQL语句涉及多表Join,因此可能会触发慢查询,最终导致DB连接池/Tomcat线程池满,应用整体不可用。

操作步骤

MSE提供的SQL洞察能力,可以观察应用和资源API维度的实时数据,并且通过Top SQL洞察可以定位应用变慢的根因,有效分析SQL语句是否合理,以及SQL执行的并发、RT是否符合系统表现的预期。根据SQL洞察的数据,有效地评估系统的整体表现,从而为流控降级规则的配置提供重要依据。

  1. 登录MSE治理中心控制台,并在顶部菜单栏选择地域。

  2. 在左侧导航栏,选择治理中心 > 应用治理

  3. 应用列表页面单击目标应用的资源卡片,进入应用概览页面,然后在左侧导航栏单击数据库治理,在基本详情页签下可查看应用的SQL流量概览Top SQL洞察Druid连接池统计数据

    • SQL流量概览:可以查看应用在具体时间点的QPS和RT等数据。流量概览

    • Top SQL洞察:通过SQL执行的Top SQL洞察列表,直观地展示高RT的SQL语句,可以快速定位应用变慢的根因,并可以通过单击操作下方的SQL防护配置SQL防护规则。具体配置规则,请参见操作步骤Top SQL洞察

    • Druid连接池统计数据:可以查看接口最大连接数、当前连接池中数据库连接的数量和SQL相关数据等信息。Druid连接池指标统计数据

      Druid连接池参数含义如下:

      参数

      描述

      DatabaseName

      数据库名称

      MaxConnectionSize

      最大连接数

      QueryTimeout

      SQL请求的超时时长

      TransactionQueryTimeout

      SQL事务的超时时长

      ActivePeak

      活跃连接峰值

      PoolingCount

      当前连接池中数据库连接的数量

      PoolingPeak

      连接池中数据库连接数量的峰值

      PoolingPeakTime

      连接池数量处于峰值的时间

      ErrorCount

      SQL请求的错误数

      ExecuteCount

      SQL请求的执行数

      CommitCount

      SQL请求的提交数

      RollBackCount

      SQL请求的回滚数

      ActiveConnectionSize

      活跃的连接数

      WaitThreadCount

      当前等待获取连接的线程数

阿里云首页 微服务引擎 MSE 相关技术圈