查看表被锁的SQL

--查看哪张表被锁了,是哪个用户和机器锁的,什么时候锁的 
select 
object_name,s.sid, s.serial#, s.username, s.schemaname, s.osuser, s.process, s.machine,
s.terminal, s.logon_time
from v$locked_object l,dba_objects o ,v$session s
where 
l.object_id = o.object_id 
and l.session_id=s.sid;

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 ; 

--查看是哪条SQL引起的死锁
select A.SQL_TEXT, B.USERNAME, C.OBJECT_ID, C.SESSION_ID, 
       B.SERIAL#, C.ORACLE_USERNAME,C.OS_USER_NAME,C.Process,
       ''''||C.Session_ID||','||B.SERIAL#||''''
from v$sql A, v$session B, v$locked_object C
where A.HASH_VALUE = B.SQL_HASH_VALUE and
B.SID = C.Session_ID
and b.SID=3991;


--解锁表
alter system kill session '24,111'; (其中24,111分别是上面查询出的sid,serial#)

如果还不能解决:

select pro.spid from v$session ses,v$process pro where ses.sid=XX and ses.paddr=pro.addr;

  其中sid用死锁的sid替换: exit
ps -ef|grep spid

  其中spid是这个进程的进程号,kill掉这个Oracle进程

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值