在DBA运维中我们经常会遇到连接数突增和SQL执行效率不高导致数据库负载拉高,在业务允许的情况下我们就会去批量KILL SESSION了:
按用户kill session:
BEGIN
FOR x IN (SELECT sid,serial# FROM v$session WHERE username='&用户名') LOOP
EXECUTE IMMEDIATE 'ALTER SYSTEM KILL SESSION '''||x.sid ||','||x.serial#||'''';
END LOOP;
END;
/
按SQL_ID kill session:
BEGIN
FOR x IN (SELECT sid,serial# FROM v$session WHERE sql_id='&sql_id') LOOP
EXECUTE IMMEDIATE 'ALTER SYSTEM KILL SESSION '''||x.sid ||','||x.serial#||'''';
END LOOP;
END;
/
注意:使用上述脚本,需在业务允许情况下执行。
阅读(1930) | 评论(0) | 转发(0) |