0


oracle服务器的CPU占用率一直100%排查方式

背景说明

公司开发、测试、演示环境,三个环境的oracle服务器无论服务器是否空闲, CPU的占用率一直是100%, 一直也没有找到问题原因,今天就花了一整天时间研究这个问题。

通过AWR报告查看oracle运行情况

awr报告是oracle 10g下提供的一种性能收集和分析工具,它能提供一个时间段内整个系统资源使用情况的报告,通过这个报告,我们就可以了解一个系统的整个运行情况,这就像一个人全面的体检报告。

  1. sqlplus / as sysdba 链接数据库。执行下面的sql,可以替换时间范围,设定报告范围
select 
snap_id,
dbid,
instance_number,
to_char(end_interval_time,'YYYY-MM-DD HH24:MI:SS')from dba_hist_snapshot  
where end_interval_time >=to_date('2020-12-18 09:00:00','yyyy-mm-dd hh24:mi:ss')and end_interval_time <= to_date('2020-12-18 10:01:00','yyyy-mm-dd hh24:mi:ss')orderby end_interval_time ;

结果如下图请添加图片描述

  1. 生成AWR报告。4个参数分别是步骤1中查询结果的DBID列,INSTANCE_NUMBER列,最后两个参数是SNAP_ID的开始和结束值。
select output fromtable(dbms_workload_repository.awr_report_html(1660034318,1,2059,2062));

结果如下
请添加图片描述

  1. 将结果集复制到txt文档,再将后缀改成html即可打开查看 效果如下图:请添加图片描述

4.分析报告发现,执行CPU占用率很高的sql, 是一个物化视图,物化视图相当于一张物理表, 物化视图会在创建时生成定时任务,定时刷新构建物化视图的sql。而这个sql非常复杂,而且很耗时,而这个物化视图执行周期为10分钟,可能10分钟不一定执行的玩,物化视图关联表很多,而且数据量达到了100W, 导致oracle进程的cpu占用率一直是100%


本文转载自: https://blog.csdn.net/zps925458125/article/details/131430051
版权归原作者 干饭两斤半 所有, 如有侵权,请联系我们删除。

“oracle服务器的CPU占用率一直100%排查方式”的评论:

还没有评论