为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:Windwos Server2016
【CPU】:24核
【问题描述】*:数据库服务器出现CPU异常,突然飙升到接近100%。但是通过
-- 查看当前正在执行的SQL及其资源消耗
SELECT *
FROM v$sessions
WHERE state = 'ACTIVE'
AND sql_text IS NOT NULL 查询正在执行的SQL只是一些简单的SQL。正常时CPU基本在10%一下浮动。目前无法定位到造成CPU异常的SQL语句。
cpu使用率一般都是活动会话在占用的,你可以通过下面的语句看一下哪些语句执行耗时比较久,考虑分析优化一下,避免长时间占用cpu资源。
select * from (
SELECT sess_id,sql_text,datediff(ss,last_send_time,sysdate) Y_EXETIME,
SF_GET_SESSION_SQL(SESS_ID) fullsql,user_name,create_time,clnt_ip,'sp_close_session('||sess_id||');' closesql
FROM V$SESSIONS WHERE STATE='ACTIVE' )
where Y_EXETIME>=1 order by Y_EXETIME desc limit 100;

ps -ef|grep dms 查服务id
再 top -Hp pid 看cpu最高pid
select * from v$sessions WHERE THRD_ID IN (pid);