oracle查询active线程,Oracle kill inactive 线程

CREATE OR REPLACE PROCEDURE "KILL_SESSION" AS

v_sid number;

v_serial number;

killer varchar2(1000);

CURSOR cursor_session_info is select sid,serial# from v$session where type!='BACKGROUND' and status='INACTIVE' and last_call_et>2700 and username='STPT' and machine='wonders_svr2';

BEGIN

open cursor_session_info;

loop

fetch cursor_session_info into v_sid,v_serial;

exit when cursor_session_info%notfound;

killer:='alter system disconnect session '''||v_sid||','||v_serial||''' post_transaction immediate';

execute immediate killer;

end loop;

dbms_output.PUT_LINE(cursor_session_info%rowcount||' users with idle_time>2700s have been killed!');

close cursor_session_info;

END;

begin

-- Call the procedure

kill_session;

end;

使用DBA用户 创建存储过程 并 执行,否则无法在procedure中访问 v$session

select machine,username,count(*) from gv$session group by machine,username

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值