1、CPU接近100% nmon数据

?
8月5日在9:20—9:40之间,出现CPU接近100%的情况,特点表现为9:20左右CPU急剧攀升,在9:45左右又快速下降
?
2、原因分析结果总述
2.1 持续时间与恢复方式
此次CPU攀高时间持续约20分钟,在无人工干预的情况下自动恢复
2.2 原因分析总述:
经过分析,原因为:4条SQL语句ORACLE优化器对LB_T_XXXVIDER视图、LB_T_XXXJECT_PROVIDER表、LA_XXCKAGE表的基数数据评估发生了巨大的差错,导致选择了错误的执行计划,消耗大量的CPU资源
2.3 错误执行计划估算数据与正确执行计划估算数据对比
此处为选择一条最严重的SQL语句为例,其它语句原因相同
| 错误执行计划基数估算值 |
Execution Plan
? |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 正确执行计划基数估算值 |
Execution Plan
? |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
说明上面统计信息与实际数据存在非常大的差异,是引起执行计划错误的真正原因
?
2.4 错误执行计划与正确执行计划CPU资源消耗差异巨大对比
此处为选择一条最严重的SQL语句为例,其它语句比例相近
SQL ID: bj75p9188y410
| # |
Plan Hash Value |
Total Elapsed Time(ms) |
Executions |
1st Capture Snap ID |
Last Capture Snap ID |
| 1 |
3990363694 |
4,585,425 |
9 |
33676 |
33677 |
| 2 |
6178145 |
2,838 |
2 |
33677 |
33677 |
| 3 |
2354817963 |
1,461 |
1 |
33677 |
33677 |
错误执行计划CPU消耗是最优执行计划CPU消耗的348倍
?
2.5 问题自动修复原因
ORACLE11G 的新功能cardinality feedback可以在上次运行完成后,得到上一次运行的基数真正结果,智能的调整后面语句运行时的执行计划,通过cardinality feedback功能得到准确基数数据后调整的执行计划,会给出下面提示:
cardinality feedback used for this statement
?
3、数据库时间与AWR快照对应信息
此在列出时间与AWR快照对应信息的原因为后续分析依赖时间与快照的关系,展示阶段性数据
| 序号 |
snap_id |
BEGIN_INTERVAL_TIME |
END_INTERVAL_TIME |
| 1 |
33675 |
05-8月 -13 08.30.41.054 |
05-8月 -13 09.00.09.786 |
| 2 |
33676 |
05-8月 -13 09.00.09.786 |
05-8月 -13 09.30.10.502 |
| 3 |
33677 |
05-8月 -13 09.30.10.502 |
05-8月 -13 10.00.26.364 |
| 4 |
33678 |
05-8月 -13 10.00.26.364 |
05-8月 -13 10.30.18.791 |
| 5 |
33679 |
05-8月 -13 10.30.18.791 |
05-8月 -13 11.00.24.540 |
?
4、