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防护规则。具体配置规则,请参见操作步骤。
Druid连接池统计数据:可以查看接口最大连接数、当前连接池中数据库连接的数量和SQL相关数据等信息。
Druid连接池参数含义如下:
参数
描述
DatabaseName
数据库名称
MaxConnectionSize
最大连接数
QueryTimeout
SQL请求的超时时长
TransactionQueryTimeout
SQL事务的超时时长
ActivePeak
活跃连接峰值
PoolingCount
当前连接池中数据库连接的数量
PoolingPeak
连接池中数据库连接数量的峰值
PoolingPeakTime
连接池数量处于峰值的时间
ErrorCount
SQL请求的错误数
ExecuteCount
SQL请求的执行数
CommitCount
SQL请求的提交数
RollBackCount
SQL请求的回滚数
ActiveConnectionSize
活跃的连接数
WaitThreadCount
当前等待获取连接的线程数