问题现象
顾问反馈系统审批单据时,系统出现整体卡顿。操作审批单据本身比较长,在数据库中出现了死锁,死锁处理后,一审批单据就又会整体卡顿。
问题分析
开始怀疑有事务锁未释放导致的,先排查数据库当时的状态。发现无相关事务锁。
排查NMC发现所有的操作都在等待数据库。查看了审批操作慢,发现要执行大量的update语句耗时严重。
排查服务器的CPU的资源利用率发现,数据库服务器的CPU已经爆表。
抓取Update语句,查看执行计划发现相关表在走全表扫描,缺少索引,并且单条sql开销巨大,十分消耗CPU的资源。
监控数据库状态,发现有其他机器也在向数据库中导入数据也比较占用资源。
解决方案
- 优化相关update语句。增加索引
- 排查相关第三方接口导入数据库问题。