Oracle数据库CPU使用率过高100%
今天测试服oracle load 特别高 最终程序得出是死循环和大量update 一个个接口的停止 得出是cron
oracle 查看执行最慢 sql
select *
from (select sa.SQL_TEXT,
sa.SQL_FULLTEXT,
sa.EXECUTIONS "执行次数",
round(sa.ELAPSED_TIME / 1000000, 2) "总执行时间",
round(sa.ELAPSED_TIME / 1000000 / sa.EXECUTIONS, 2) "平均执行时间",
sa.COMMAND_TYPE,
sa.PARSING_USER_ID "用户ID",
u.username "用户名",
sa.HASH_VALUE
from v$sqlarea sa
left join all_users u
on sa.PARSING_USER_ID = u.user_id
where sa.EXECUTIONS > 0
order by (sa.ELAPSED_TIME / sa.EXECUTIONS) desc)
where rownum <= 50;
执行次数 总执行时间 平均执行时间 COMMAND_TYPE 用户ID
---------- ---------- ------------ ------------ ----------
用户名 HASH_VALUE
------------------------------ ----------
1 1.17 1.17 3 94
ZTGO0815 4012756581
BEGIN prvt_advisor.delete_expired_tasks; END;
BEGIN prvt_advisor.delete_expired_tasks; END;
SQL_TEXT
--------------------------------------------------------------------------------
SQL_FULLTEXT
--------------------------------------------------------------------------------
执行次数 总执行时间 平均执行时间 COMMAND_TYPE 用户ID
---------- ---------- ------------ ------------ ----------
用户名 HASH_VALUE
------------------------------ ----------
1 1.15 1.15 47 0
SYS 1744675339
50 rows selected.
正常后的第二次
--------------------------------------------------------------------------------
执行次数 总执行时间 平均执行时间 COMMAND_TYPE 用户ID
---------- ---------- ------------ ------------ ----------
用户名 HASH_VALUE
------------------------------ ----------
t.type_id AS originalTypeId,
t.name AS n
11 12.55 1.14 3 94
ZTGO0815 3130536340
see also
oracle CPU使用太高 如何诊断和解决CPU高度消耗(100%)的数据库问题
ORACLE 性能优化-查询数据库慢SQL(其实还是awr和ash报告更方便~)