Oracle 中查询死锁与锁等待的语句

查锁死锁锁等待

select /*+no_unnest*/'alter system kill session '''|| s.sid||','||s.SERIAL# ||''' immediate;',p.SPID,q.ROWS_PROCESSED,

s.USERNAME,s.EVENT,s.LAST_CALL_ET,s.LOCKWAIT,s.STATUS,q.SQL_FULLTEXT,q.SQL_ID,s.BLOCKING_SESSION

from v$session s,v$sql q,v$process p

where s.sid >1 and s.PADDR=p.ADDR and q.sql_id(+)=s.sql_id

and s.username is not null

--and s.status='ACTIVE'

and s.event not like '%SQL*Net message from client%'

--and last_call_et>1

order by last_call_et desc,sid

说明:

 LOGON_TIME 是一个日期型(Date)字段,为用户登陆时间; 

 LAST_CALL_ET 是一个数字型(Number)字段,其含义是用户最后一条语句执行完毕后到 sysdate 的时间,单位为秒。每次用户执行一个新的语句后,该字段复位为 0,重新开始记数。我们可以通过该字段来获得一个连接用户最后一次操作数据库后的空闲时间。

非常常用请大家收藏。