关于oracle的锁以及死进程的处理
--1.查询系统中DML的锁,以及锁的sql
Select t2.SQL_TEXT,t.*,t1.*,t2.* From V$lock t,
V$session t1,
/*V$sqltext t2--或者用这个做t2也可以*/
V$sqlarea t2
Where t.SID=t1.SID
And t1.SQL_HASH_VALUE = t2.HASH_VALUE;
---2.在ora下用alter system kill session ‘sid,serial#’
--弊端:用alter system kill session ‘sid,serial#’进行清除时,
--这些session的状态又变成了killed,这些就由Pmon进程来慢慢进行清除了。
Select sid,serial# From V$session Where STATUS='INACTIVE';
---3.在win下command的方式下用orakill的方式KIll session
Select 'orakill '||x.SID||','||x1.SPID||';' s From V$session x,V$process x1
Where x.PADDR = x1.ADDR
And x.STATUS='INACTIVE'
;
--4.查询锁,以及锁得对象
Select * From V$locked_Object t,User_Objects t1
Where t1.Object_Id= t.OBJECT_ID;