kill session-KILL_SESSION()

一. 开发背景#

做kill session操作时需要考虑session 占用的回滚段大小.

本程序所有查询结果均排除username为null的会话。

二. 流程图#

autodb-kill_session.png

三. 参数说明#

1. 函数头#

 function kill_session(kill            varchar2 default 'false',                         filter_name     varchar2 default null,                         filter_word     varchar2 default null,                         used_undo_below number default 250,                         session_id      number default 0,                         serial          number default 0)     return t_session_info_tab
    pipelined;

2. 参数#

kill filter_name filter_word used_undo_below session_id serial
该参数决定是否执行kill session的操作,对哪些会话执行kill操作由其他参数的过滤条件决定。
该值为'true'时,执行kill操作.
指定按哪个字段做过滤,接受下面4个值之一,"EVENT","DBUSER", "OSUSER","HASHVALUE"
"EVENT":按session的等待事件做过滤
"DBUSER":按session的username做过滤,当为该值时,filter_word参数会忽略大小写
"OSUSER":按session的osuser做过滤
"HASHVALUE":按session当前执行的sql hash value做过滤,为了保持向9i数据库兼容,不支持SQL ID做过滤条件

  • 当为参数为空,并且session_id参数为0时,不指定具体过滤条件,则只显示当前非空闲等待的session。
过滤条件,支持Oracle like的模糊匹配。
如"filter_name"为'EVENT'时,本参数值为'%buffer%',可以列出所有等待事件中含buffer的等待事件。
当参数"kill"的值为'true'时,本参数才有效,kill session的动作只会在undo使用量小于本参数指定值的session实施,单位是M,默认值是250M。
以session的sid为过滤条件,指定本参数后,filter*参数将失效。
指定session的sid时,该sid对应的serial#

四 举例 #

1、以dbuser做过滤条件,kill session。#

SQL> select * from table(dba_session.kill_session('true', 'dbuser','dbmgr'));  
 SID     SERIAL  USED_UNDO USERNAME   STATUS   SQL_HASH_VALUE OSUSER                         PROGRAM                                          EVENT                     KILLED ---- ---------- ---------- ---------- -------- -------------- ------------------------------ ------------------------------------------------ ------------------------- ------   93         15          0 DBMGR      KILLED                0 lianghaian001                  plsqldev.exe                                     SQL*Net message from clie YES
                                                                                                                                              nt                        
 
  97         14          0 DBMGR      KILLED                0 lianghaian001                  plsqldev.exe                                     SQL*Net message from clie YES

2、显示当前event为'SQL*Net'开头的会话信息。#

SQL> select * from table(dba_session.kill_session(null, 'event','SQL*Net%'));  
 SID     SERIAL  USED_UNDO USERNAME   STATUS   SQL_HASH_VALUE OSUSER                         PROGRAM                                          EVENT                     KILLED ---- ---------- ---------- ---------- -------- -------------- ------------------------------ ------------------------------------------------ ------------------------- ------   14         28          0 COW_SUNXIN INACTIVE              0 sunxin005                      plsqldev.exe                                     SQL*Net message from clie NO
                           005                                                                                                                nt                        
 
  25        362          0 LIANGHAIAN ACTIVE       2749853118 lianghaian001                  plsqldev.exe                                     SQL*Net message from clie NO
                           001                                                                                                                nt                        
 
  26        273          0 COW_WUXIAO INACTIVE              0 wuxiaoli133                    plsqldev.exe                                     SQL*Net message from clie NO
                           LI133                                                                                                              nt                        
  

转载于:https://my.oschina.net/u/729507/blog/88630

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值