oracle:一执行sql,表就锁了

1.查询锁表语句:

  SELECT object_name, machine, s.sid, s.serial# FROM gv$locked_object l, dba_objects o, gv$session s 

  WHERE  l.object_id = o.object_id AND l.session_id = s.sid;

2.删除锁表

alter system kill session 'sid, serial#';
eg:ALTER system kill session '1026, 22197';

注意:如果不删除,数据库一会儿也会自动删除

3.原因:

  造成锁表一般都是没有commit,事务没有提交,至于事务为什么没有提交,在程序方面一般有几个原因:

  1)dao层的修改或者删除,没有service层,直接用controller调用,所以没有添加事务

  2)service层的方法名不正确,与spring里的配置文件,不对应,造成锁表

 

posted @ 2016-10-31 17:35  刘尊礼  阅读(646)  评论(0)    收藏  举报