前几天项目中同事的一个调查依赖,整了条SQL,来看一下谁、那条SQL在锁着表。
感觉脚本重用性还有些,记录一下。例子稍后有时间时再加一下。~~
----------------------
select
/*+ NO_MERGER(a) NO_MERGE(b) NO_MERGER(c)*/
a.USERNAME,
a.MACHINE,
a.SID,
a.SERIAL#,
a.LAST_CALL_ET "Sec",
b.ID1,
c.SQL_TEXT "SQL"
from v$session a, v$lock b, v$sqltext c
where a.USERNAME is not null
and a.LOCKWAIT = b.KADDR
and a.SQL_HASH_VALUE = c.HASH_VALUE
----------------------
再补充三个,很好用
----------------------------
--查询被锁的表
SELECT p.spid,
a.serial#,
c.object_name,
b.session_id,
b.oracle_username,
b.os_user_name
FROM v$process p,
v$session a,
v$locked_object b,
all_objects c
WHERE p.addr = a.paddr
AND a.process = b.process
AND c.object_id = b.object_id
--查询锁表进程
SELECT sid, serial#, username, osuser
FROM v$session
where suser = 'OS USER名'
--杀死进程
alter system kill session 'sid, serial#';
------------------------------
以上。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/20335819/viewspace-712792/
,如需转载,请注明出处,否则将追究法律责任。