oracle服务器的CPU占用率一直100%排查方式
短信预约 -IT技能 免费直播动态提醒
背景说明
公司开发、测试、演示环境,三个环境的oracle服务器无论服务器是否空闲, CPU的占用率一直是100%, 一直也没有找到问题原因,今天就花了一整天时间研究这个问题。
通过AWR报告查看oracle运行情况
awr报告是oracle 10g下提供的一种性能收集和分析工具,它能提供一个时间段内整个系统资源使用情况的报告,通过这个报告,我们就可以了解一个系统的整个运行情况,这就像一个人全面的体检报告。
- 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') order by end_interval_time ;
结果如下图
- 生成AWR报告。4个参数分别是步骤1中查询结果的DBID列,INSTANCE_NUMBER列,最后两个参数是SNAP_ID的开始和结束值。
select output from table(dbms_workload_repository.awr_report_html(1660034318,1,2059,2062));
结果如下
- 将结果集复制到txt文档,再将后缀改成html即可打开查看
效果如下图:
分析报告发现,执行CPU占用率很高的sql, 是一个物化视图,物化视图相当于一张物理表, 物化视图会在创建时生成定时任务,定时刷新构建物化视图的sql。而这个sql非常复杂,而且很耗时,而这个物化视图执行周期为10分钟,可能10分钟不一定执行的玩,物化视图关联表很多,而且数据量达到了100W, 导致oracle进程的cpu占用率一直是100%
来源地址:https://blog.csdn.net/zps925458125/article/details/131430051
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341