在操作数据库的相关过程中,可能经常会碰到一些锁表的情况,这种情况下也许需要查出并杀掉
–(1)锁表查询的代码有以下的形式:
select count(*) from v$locked_object;
select * from v$locked_object;
–(2)查看哪个表被锁:
select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;
–(3)查看是哪个session引起的:
SELECT B.USERNAME, 'alter system kill session' || ' ' || '''' || B.SID ||',' || B.SERIAL# || '''' || ';' /*,logon_time*/
FROM V$LOCKED_OBJECT A, V$SESSION B
WHERE A.SESSION_ID = B.SID
GROUP BY B.USERNAME, B.SID, B.SERIAL#
--ORDER BY B.LOGON_TIME;
–(4)杀掉对应进程执行命令:
alter system kill session '100,12453';
alter system kill session '212,5913';
alter system kill session '247,859';
alter system kill session '256,34447';
-其中后边是为sid,前边为serial#.
其他的后续再补充