在ORACLE數據庫當中,有時候會使用ALTER SYSTEM KILL SESSION 'sid,serial#'殺掉一個會話進程,但是使用這個SQL語句殺掉會話后,數據庫並不會立即釋放掉相關的資源,有時候你會發現鎖定的資源很長時間也不會釋放,即使會話狀態為“KILLED”,依然會阻塞其它會話。
1、查看鎖表進程
--查看鎖表進程SQL語句1: \** select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object lo, dba_objects ao, v$session sess where ao.object_id = lo.object_id and lo.session_id = sess.sid;
2、我們可以看到會話狀態為killed
SELECT Saddr, Sid, Serial#, Paddr, Username, Status FROM V$session t WHERE t.SID = '2587'
2、取上面查到的PADDR,
select addr, pid, spid, username from v$process where addr ='0000000BC8BAB350'
3、在plsql的命令窗口輸入命令
完成之后再用第一個語句查看是否還有鎖表的會話是否被kill