1.查看锁表情况;

SELECT /*+ RULE */ Ls.Osuser Os_User_Name, Ls.Username User_Name, Decode(Ls.TYPE,        'RW',        'Row wait enqueue lock',        'TM',        'DML enqueue lock',        'TX',        'Transaction enqueue lock',        'UL',        'User supplied lock') Lock_Type, o.Object_Name OBJECT, Decode(Ls.Lmode,        1,        NULL,        2,        'Row Share',        3,        'Row Exclusive',        4,        'Share',        5,        'Share Row Exclusive',        6,        'Exclusive',        NULL) Lock_Mode, o.Owner, Ls.Sid, Ls.Serial# Serial_Num, Ls.Id1, Ls.Id2  FROM Sys.Dba_Objects o,       (SELECT s.Osuser,               s.Username,               l.TYPE,               l.Lmode,               s.Sid,               s.Serial#,               l.Id1,               l.Id2          FROM V$session s, V$lock l         WHERE s.Sid = l.Sid) Ls WHERE o.Object_Id = Ls.Id1   AND o.Owner <> 'SYS' ORDER BY o.Owner, o.Object_Name;

2.查看锁表、主机、SID/SERIAL

select l.session_id sid,      s.serial#,      l.locked_mode,      l.oracle_username,      l.os_user_name,      s.machine,      s.terminal,      o.object_name,      s.logon_time,       'alter system kill session '''||l.session_id||','||s.serial#||''';' kill会话 from v$locked_object l, all_objects o, v$session swhere l.object_id = o.object_id  and l.session_id = s.sid       order by sid, s.serial#;

3.查看导至锁表的sql语句(汇总查询);

select l.session_id sid,      s.serial#,      l.locked_mode,      l.oracle_username,      s.user#,      l.os_user_name,      s.machine,      s.terminal,      a.sql_text,      a.SQL_FULLTEXT,       o.object_name from v$sqlarea a, v$session s, v$locked_object l,all_objects owhere l.object_id = o.object_id  and l.session_id = s.sid  and s.prev_sql_addr = a.addressorder by sid, s.serial#;

4.sid查看sql语句;

select b.sql_text from v$session a, v$sql bwhere a.sid = SID号 --session_id         and a.SQL_ADDRESS = b.ADDRESS(+);

5.删除锁表的会话;

----3028:SID,15898:SERIAL#alter system kill session '3028,15898';