ORACLE数据库导致cpu使用率高的原因
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE数据库导致cpu使用率高的原因相关的知识,希望对你有一定的参考价值。
用一台机子做服务器,装的ORACLE数据库,但是CPU的使用率不稳定,每隔一分钟或多长时间,cpu的使用率就一下子高了很多,可达90%多,在我们的机子上运行程序时,那CPU的使用率就更高了,就算不读取数据,cpu的使用率也是忽高忽低的。这是怎么回事呀?有具体的原因或解决办法吗?
不是什么内存,注册表之类的问题哦,也不是右键的。 不是自己的机子做服务器。也不是开机时cpu高,服务器就一直开启着,oracle也一直运行着,在不取数据,不执行操作时,Oracle占内存就不稳定;在运行项目时,Oracle更不稳定了,cpu更是忽上忽下的。
select count(*) from jam_status_detect_5 t
where
t.alarm_rank != -1
and t.alarm_confirm_status = 0
and t.status_time >=(select max(s.status_time) from jam_status_detect_5 s )- 0/24
and t.status_time <=(select max(s.status_time) from jam_status_detect_5 s 这条语句该怎样优化 占用时间是3s多
另外,关于你的SQL的优化,首先考虑在Where中不要使用子查询,其次,看看执行计划,只贴语句是很难进行调优的。 参考技术B 自己的机子做服务器要把oracle设置成手动的启动,否则你开机就运行很多的资源所以你的cpu会很高。在运行里面输入services.msc进行设置oracle的服务运行状态。 参考技术C select count(*) from jam_status_detect_5 t
where
t.alarm_rank != -1
and t.alarm_confirm_status = 0
and t.status_time >=(select max(s.status_time) from jam_status_detect_5 s )- 0/24
and t.status_time <=(select max(s.status_time) from jam_status_detect_5 s
一条语句遍历三次 要是jam_status_detect_5这张表数据量大的话 那简直就是灾难。。你完全可以只使用一次遍历实现
另外 检查job 估计是有定时任务在执行 而这任务很耗时本回答被提问者采纳
一次ipv6导致Cisco6509cpu高的处理过程
核心交换机是Cisco6509E,出现的问题是cpu从20%飙升到60%
1、在Cisco6509上使用命令 show proc cpu sort 5min 可以查看到导致cpu高的原因是ipv6 input
2、于是在Cisco6509下面的各个vlan抓包,共计12栋楼
3、主要是抓IPv6的包
找到mac地址为14:3d:f2:b8:8a:32的主机,在交换机上封口,cpu恢复正常
以上是关于ORACLE数据库导致cpu使用率高的原因的主要内容,如果未能解决你的问题,请参考以下文章