Oracle PL/SQL工具kill会话跟踪测试

一:问题说明:
在PL/SQL Developer
Version 11.0.5.1790 (64.bit)
使用PL/SQL Developer进行kill会话,发现没有kill会话的选项。
客户咨询,这种kill会话的情况是属于正常kill会话还是属于立即kill会话:
在这里插入图片描述
二 跟踪测试:

使用PLSQL连接测试数据库,并定位到当前会话ID:
在这里插入图片描述

PL/SQL会话信息:
SID=404 serial#=24050

使用Oracle 10046事件进行跟踪该会话:

查询出OS进程ID:
select spid  from v$ process where addr in (select paddr from v$session where sid=404);
SPID
13657

SQL> oradebug setospid 13657;
Oracle pid: 107, Unix process pid: 13657, image: oracle@rac1

SQL> oradebug unlimit;
Statement processed.

SQL> oradebug event 10046 trace name context forever,level 12;
Statement processed.

SQL> oradebug tracefile_name
/oracle/app/diag/rdbms/orcl/orcl1/trace/orcl1_ora_13657.trc

使用PL/SQL进行kill会话:
在这里插入图片描述

SQL> oradebug event 10046 trace name context off;
Statement processed.

查看trace文件:
在这里插入图片描述

结论:
从trace文件中可以明显看出Alter system kill session ‘409,42407’语句,因此使用PLSQL 11结束会话模式属于正常结束会话.并不属于立即结束会话。

附:
在最新版的PLSQL 13版本中,已经具有杀会话选项:
在这里插入图片描述
关于加不加immediate的区别:

如果不加IMMEDIATE,仅仅是标记该事务为中断,等待PMON进程来回收该SESSION所占用的资源及释放锁等,
如果加IMMEDIATE,那么就可以实现立即结束会话。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值