oracle锁表阻塞

产生死锁有两种场景

  1. 阻塞
    第一个连接占有资源有释放,而第二个连接需要获取这个资源.如果第一个连接没有提交 第二个连接会一直等待下去,直到第一个连接释放该资源 为上.对于阻塞,数据库无法处理
  2. 死锁
    第一个连接有释放,准备获取 第二个连接所资源 ,而第二个连接资源没有释放,准备获取第一个连接所占用的资源 .这种互相方需要获取的资源 的现象叫做死锁
    注意: 对于这种死锁数据库会处理 杀掉一个 让另一个能执行
java.sql.SQLException: ORA-00060: deadlock detected while waiting for resource

关于阻塞时 要执行的参考SQL

--产生阻塞的表         
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;

--产生阻塞的sessionId
select b.username,
      b.sid,
      b.serial#,
      b.LOCKWAIT,
      b.STATUS, -- ACTIVE表示该条语句出现阻塞等待中了无法执行直到别人提交才能执行
      b.PROGRAM,
      b.MACHINE,
      logon_time
 from v$locked_object a, v$session b
where a.session_id = b.sid
order by b.logon_time;

--产生阻塞的SQL语句
select sql_text
 from v$sql
where hash_value in
      (select sql_hash_value
         from v$session
        where sid in (select session_id from v$locked_object))
--杀掉死锁
alter system kill SESSION '405,47249';

pl/sql工具查询锁

工具–>会话–>锁
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值