ORACLE快速彻底Kill掉的会话,防止锁表
2020-05-30
编程之家收集整理的这篇文章主要介绍了ORACLE快速彻底Kill掉的会话,防止锁表,编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
万能是sql重启服务,不然,以下之:
在ORACLE数据库当中,有时候会使用ALTER SYSTEM KILL SESSION 'sid,serial#'杀掉一个会话进程,但是使用这个sql语句杀掉会话后,数据库并不会立即释放掉相关的资源,有时候你会发现锁定的资源很长时间也不会释放,即使会话状态为“KILLED”,依然会阻塞其它会话。
下面根据Eygel的"Oracle中Kill session的研究",构造一个案例看看kill session到底做了什么。如下所示
会话1:
Connected.
sql> update test set status='invalid';
55944 rows updated.
sql> update test2 set dropped='Y';
3090 rows updated.
会话2:
user
USER is "SYS"
update etl.test2 3090 会话3
select saddr,sid,serial#,paddr,username,status from v$session where username =upper('etl') or username ='sys');