oracl数据表死锁解决方法

-- 查出被锁的表,和锁住这个表的会话ID

Sql代码  收藏代码

  1. select a.session_id ,b.* from v$locked_object a,all_objects b  

  2. where a.object_id=b.object_id  

 

Sql代码  收藏代码

  1.    

 

-- 查出对应的SQL语句

Java代码  收藏代码

  1. select vs.SQL_TEXT,vsess.sid,vsess.SERIAL#,vsess.MACHINE,vsess.OSUSER  

  2. ,vsess.TERMINAL,vsess.PROGRAM,vs.CPU_TIME,vs.DISK_READS  

  3. from v$sql vs,v$session vsess  

  4. where vs.ADDRESS=vsess.SQL_ADDRESS  

  5. and vsess.sid=(上面查出来的会话ID)  

 

 

 

 

--查看是哪个session引起的

Sql代码  收藏代码

  1. select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time;   

 

 

--杀进程

Sql代码  收藏代码

  1. ALTER SYSTEM KILL SESSION '查出的SID,查出的SERIAL#';  ---上面这条语句可以查到sid以及serial  

 

ok 问题搞定 


你可能感兴趣的:(java,where,数据表)