wenjinglian 发表于 2013-1-14 08:57:25

oracle锁表解除

--Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程等操作,那么这些操作是怎么实现的呢?本文我们主要就介绍一下这部分内容。
 
--锁表查询的代码有以下的形式:
select count(*) from v$locked_object;
select * from v$locked_object;
 
 
 
 
 --查看哪个表被锁
 
select b.owner,b.object_name,a.session_id,a.locked_modefrom v$locked_object a,dba_objects bwhere b.object_id = a.object_id;  
 
--查看是哪个session引起的
 
select b.username,b.sid,b.serial#,logon_timefrom v$locked_object a,v$session bwhere a.session_id = b.sid order by b.logon_time;  
 
执行命令:alter system kill session'1025,41';
 
其中1025为sid, 41为serial#.
 
锁表详情:
 

SELECT /*+ rule */ s.username,decode(l.type,'TM','TABLE LOCK','TX','ROW LOCK',NULL) LOCK_LEVEL,o.owner,o.object_name,o.object_type,s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuserFROM v$session s,v$lock l,dba_objects oWHERE l.sid = s.sidAND l.id1 = o.object_id(+)AND s.username is NOT NULL  
 
 
页: [1]
查看完整版本: oracle锁表解除