某业务中台性能不佳的SQL语句问题简述分析报告

1. 分析及解决方案概述

分析原因

  • 由于某业务中台应用程序存在一些性能不佳的SQL语句,未创建索引,执行效率极低,且在问题发生时段内频繁调用(6000余次/分钟),导致应用连接数据库的会话数暴增,服务器内存被耗尽并HANG死。

解决方案

  • 发现数据库服务器内存被耗尽后,临时调整了操作系统内存大页参数,设置上限值(官方手册中该参数默认关闭),并重启服务器使参数生效,避免应用会话数无限增加而耗尽内存。

2. 问题描述

  • 2024年2月25日16时18分,接监控告警电话,业务中台数据库2节点状态异常inactive,1节点正常对外提供服务,应用的长连接未发生中断,排查发现,应用连接数据库的会话数激增(共4800多个),导致数据库服务器内存被耗尽,无法正常处理应用请求。
操作系统版本RHEL 7
数据库架构RAC集群
数据库版本19.5.0

3. 问题分析

3.1 问题现象

  • 由于业务中台数据库2节点状态为不活跃状态,登录数据库进行检查,服务器资源已全部耗尽,
    CPU、内存使用率均已到达98%以上。而后通过数据库1节点检查,具体语句如下:

a) 问题语句1
图表 1 SQL语句和执行计划
在这里插入图片描述

图表 2表大小
在这里插入图片描述

图表 3每个小时语句执行次数
在这里插入图片描述

b) 问题语句2

图表 4 SQL语句和执行计划
在这里插入图片描述

图表 5 表大小
在这里插入图片描述

图表 6 每个小时语句执行次数
在这里插入图片描述

c) 问题语句3

图表 7 SQL语句和执行计划
在这里插入图片描述

图表 8 表大小

在这里插入图片描述

图表 9 每个小时语句执行次数
在这里插入图片描述

d) 问题语句4

图表 10 SQL语句和执行计划
在这里插入图片描述

图表 11 表大小
在这里插入图片描述

图表 12 每个小时语句执行次数

在这里插入图片描述

3.2 问题分析总结

  • 综合上述分析,我们可以看到:多条执行效率差的sql语句,这些语句在查询表时会使用全表扫描,并且执行次数过多,问题语句抢占服务器资源过多,导致问题发生

4. 处理/优化建议

  1. 优化应用程序,针对抓取到的SQL语句进行分析优化,创建适当索引,提高执行效率,避免应用连接数暴增问题。
  2. 加强协作,如再次发生诸如内存耗尽、交易缓慢等问题,第一时间联系我室人员进行排查分析。同时测试阶段如有需要,也请及时联系我们。
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值