DM
查看数据库会话连接数
SELECT SF_GET_PARA_STRING_VALUE(1,'INSTANCE_NAME') AS 实例名,STATE AS 状态,CLNT_IP AS 连接IP,COUNT(*)AS 数量 FROM V$SESSIONS GROUP BY STATE,CLNT_IP ORDER BY STATE;
查询cpu占用最高的线程(dmserver pid xxx)
ps -eLo pcpu,pmem,pid,tid,psr,wchan:14,comm|grep xxx |sort
用户线程dm_sql_thd占用比较多,找到对应会话进行处理
select * from v$sessions where thrd_id in ('xxx',......'xxx');
--都是一些不活动会话,找到对应的sess_id 杀掉该会话
SP_CLOSE_SESSION(xxx);
根据时长信息查看正在运行的sql
select datediff(ss,last_recv_time,sysdate) ss,dbms_lob.substr(sf_get_session_sql(sess_id)),sess_id,substr(clnt_ip,8,13) from v$sessions where state='ACTIVE' order by 1 desc;
批量kill脚本
declare
v_cnt int;
begin
for rec in (select sess_id from v$sessions where state='ACTIVE' and clnt_ip<>'::1' and sql_text like '%SQL文本%' order by 1)
loop
execute immediate 'sp_close_session(' || rec.sess_id || ');';
end loop;
end;