当ORACLE 中的线程被KILL后,还是不释放资源,就可以根据下面这条语句查出被锁死的线程:
select a.spid,b.sid,b.serial#,b.username from v$process a,v$session b where a.ADDR=b.PADDR and b.STATUS='KILLED';
当然查出来是第一步,在PL SQL Developer中,通过SESSION杀是杀不死的,重启数据库不大现实,特别是像移动这样的大型数据库,可能里面有几个系统的数据在跑,这时,你就要到OS级别上把该进程KILL掉:
以下是我在LINUX环境下的杀进程:
进入ROOT用户下,执行: KILL -9 SPID
spid 为你查出被锁死进程的SPID号。
等待十几秒后,可以发现,进程被杀死。
WINDOWS 版本的命令不大记得。