Oracle内存和CPU占用率极高,是啥问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle内存和CPU占用率极高,是啥问题相关的知识,希望对你有一定的参考价值。

问题分析:
一般cpu占用效高都是排序、sql解析和全表扫描,这里首先需要找出占用cpu最高的sql,然后查看他的执行计划,比如:看执行计划是走索引还是全表扫描(刚开始查看top发现占用同样多的CPU的进程很多,还以为是oracle 的bug, 后来发现不是)。

处理过程:
1, 根据操作系统进程查找Oracle数据库中占用最多CPU的SQL
使用Linux系统 "top命令->P "查出占用cpu最高的进程PID
操作如下:在sqlplus中执行如下sql:
SQL>
SELECT
sql_text
FROM v$sqltext a
WHERE (a.hash_value, a.address) IN
(SELECT DECODE(sql_hash_value, 0, prev_hash_value, sql_hash_value),
DECODE(sql_hash_value, 0, prev_sql_addr, sql_address)
FROM v$session b
WHERE b.paddr =
(SELECT addr FROM v$process c WHERE c.spid = '&pid'))
ORDER BY piece ASC
其中&pid 是使用top 查看系统中进程占用CPU极高的PID
找到SQL语句进行相应的调整优化
2,分析找到的sql语句,如查看sql执行计划。
参考技术A 1、优化SQL语句; 2、数据分批处理; 3、数据分不同时间段处理; 4、加内存条。

Java内存CPU占用率过高

windows下揪出java程序占用cpu很高的线程 并找到问题代码 死循环线程代码

linux下查找java进程占用CPU过高原因

Java 占用CPU使用率很高的分析

记一次线上Java程序导致服务器CPU占用率过高的问题排除过程

以上是关于Oracle内存和CPU占用率极高,是啥问题的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver2008占内存高,一般是啥原因

mysql连接卡死,很多线程sleep状态,导致CPU中mysqld占用率极高

如何检查oracle数据库性能

电脑CPU占用率100%会出现啥问题?是啥原因造成的?

在循环函数中将解析的 JSON 数据上传到 Firebase 时,内存和 CPU 使用率极高

cpu占用过高怎么办