在oracle系统中有两类锁:
一种是由delete,update,insert类的dml产生的锁;
还有一种是由ddl语句引起的锁,如alter table,alter procedure compile等语句引起的锁;
这两类锁的查询分别通过两个视图来追踪查看:
(1) dml引起的锁在v$locked_object视图可以追踪到;
(2) ddl引起的锁在dba_ddl_locks视图可以追踪到;
通过上面的查询视图可以追踪当前拥有锁的session,通过v$session视图的paddr列可以查询到对应的进程或线程地址,然后通过该地址查询v$process视图可以查询到对应的进程号,如果session已视标记为killed,则可以在后台通过kill -9 spid 将进程杀掉,从而释放session所占的锁及资源。