通过分析故障时间点数据库ASH、AWR报告、OSW日志信息:
1、 故障期间主机CPU资源高消耗、RUN队列持续增高

2、 故障时间段数据库状态分析

故障时间段数据库语句执行情况:

故障时间段数据库TopSQL信息:

TopSQL语句信息:
略
异常时间段fyh80hwbv7gna、5vsxm0s8ps2j6语句高并发情况:

同比8月29日TopSQL语句执行次数突增近10倍:

总结:本次故障原因为“fyh80hwbv7gna”、“5vsxm0s8ps2j6”语句异常高并发调用、导致数据库主机CPU资源高消耗,数据库服务响应时间延长。
解决方案:
本次解决方案分为两个方面:
1. 针对异常SQL语句进行执行性能优化;
优化分析:
异常期间fyh80hwbv7gna语句执行2300次,平时10次 "分析和优化:分页查询总条数,1.SE_XX系列表统计信息不对 se_pretask_info查询条件like全通配导致执行计划基数估算不准(实际小于10条,实际返回5000次,应该走NESTED LOOPS的走了HASH JOIN)。
优化建议:
收集SE_XX系列表统计信息并使用SQL PROFILE绑定,逻辑读436w 执行时间16s,高频运行会导致CPU使用满 ,同时存在大量分页语句汇总,未使用绑定变量。
优化效果:
fyh80hwbv7gna语句逻辑读:436w--->5800 执行时间:16s-->0.3s 效率提升50倍以上。
gyk0u596xt7c7语句逻辑读:363w——>25000,执行时间:11s—》1.6s,效率提升6倍以上。
2. 核查应用运行情况,确认异常调用根本原因。
文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




