SQL洞察是一种可视化的分析工具和技术,用于深入了解SQL查询的行为和性能特点,可以帮助数据库管理员和开发者了解SQL查询的具体执行情况,如查询的耗时、资源占用等详细信息。通过SQL洞察功能,可以实时监控SQL的运行状态,并基于这些数据做出有针对性的优化决策。MSE提供秒级的SQL洞察,具备完善的SQL审计能力,可以有效地评估系统的整体表现。
背景信息
系统中出现慢SQL可能会导致CPU、负载异常和系统资源耗尽等情况。严重的慢SQL发生后可能会拖垮整个数据库,对线上业务产生阻断性的风险。例如,以下场景需要进行SQL治理:
SQL语句处理时间比较长导致线上业务接口出现大量的慢调用,需要快速定位有问题的慢SQL。
在项目初期没有对SQL的性能做好考量,随着业务的发展,用户量级的增加,线上遗留老接口的SQL逐渐成为性能瓶颈。
由于SQL语句涉及多表Join,因此可能会触发慢查询,最终导致DB连接池/Tomcat线程池满,应用整体不可用。
操作步骤
MSE提供的SQL洞察能力,可以观察应用和资源API维度的实时数据,并且通过Top SQL洞察可以定位应用变慢的根因,有效分析SQL语句是否合理,以及SQL执行的并发、RT是否符合系统表现的预期。根据SQL洞察的数据,有效地评估系统的整体表现,从而为流控降级规则的配置提供重要依据。
登录MSE治理中心控制台,并在顶部菜单栏选择地域。
在左侧导航栏,选择 ,然后单击目标应用的资源量卡片。
在目标应用详情页面的左侧导航栏,单击数据库治理,然后选择基本详情页签。
查看应用的SQL流量概览、Top SQL洞察和Druid连接池统计数据。
SQL流量概览:可以查看应用在具体时间点的QPS和RT等数据。
Top SQL洞察:通过SQL执行的Top SQL洞察列表,直观地展示高RT的SQL语句,可以快速定位应用变慢的根因,并可以通过单击操作下方的SQL防护配置SQL防护规则。具体操作,请参见慢SQL治理。
Druid连接池统计数据:可以查看接口最大连接数、当前连接池中数据库连接的数量和SQL相关数据等信息。
Druid连接池参数含义如下:
参数
描述
DatabaseName
数据库名称。
MaxConnectionSize
最大连接数。
QueryTimeout
SQL请求的超时时长。
TransactionQueryTimeout
SQL事务的超时时长。
ActivePeak
活跃连接峰值。
PoolingCount
当前连接池中数据库连接的数量。
PoolingPeak
连接池中数据库连接数量的峰值。
PoolingPeakTime
连接池数量处于峰值的时间。
ErrorCount
SQL请求的错误数。
ExecuteCount
SQL请求的执行数。
CommitCount
SQL请求的提交数。
RollBackCount
SQL请求的回滚数。
ActiveConnectionSize
活跃的连接数。
WaitThreadCount
当前等待获取连接的线程数。
相关文档
关于文中涉及的指标详细说明,请参见微服务治理指标类型及说明。
- 本页导读 (1)