OWNER :数据表的所有者用户 OBJECT_NAME: 被锁住的表名 SESSION_ID: 会话ID LOCKED_MODE: 锁级别 锁级别分为6级: 1级锁有:Select 2级锁有:Select for update,Lock For Update,Lock Row Share 3级锁有:Insert, Update, Delete, Lock Row Exclusive 4级锁有:Create Index,Lock Share 5级锁有:Lock Share...
可以发现在创建索引的会生成2个TM锁,锁类别分别为4和3,我们查询这2个TM分别锁定的是什么对象: 根据查询结果发现lmode=4的object_id为55160的对象对应的是TTT这个表,LMODE=4对应的是TM的S锁 总结 数字越大锁级别越高, 影响的操作越多。 1级锁有:Select,有时会在v$locked_object出现。 2级锁有:Select for...
lock table t_user in row exclusive mode nowait; -- mode3 session2 mode2-mode3都可以。 lock table t_user in share mode nowait; -- mode4 执行失败,因为禁止锁定share模式。 1. 2. 3. 4. 5. share 4级锁 允许并发查询,但禁止更新锁定表。 用2个session分别执行sql进行测试: session1 lock t...
1级锁有:Select有时会在v$locked_object出现。 2:Row-S 行共享(RS):共享表锁,sub share 2级锁有:Lock Row Share,create index online >>表锁的情况下 locked_mode 2不影响后一个locked_mode 2、3、4、5的会话,如果后一个会话locked_mode为6,则后一个会话操作会提示ora-00054错误。 ORA-00054: resourc...
>>行锁的情况下 locked_mode 3的表锁对应行锁6级锁,两个会话对同一行则影响。4:Share 共享锁(S):阻止其他DML操作,share4级锁有:Create Index, Lock Share5:S/Row-X 共享行独占(SRX):阻止其他事务操作,share/sub exclusive5级锁有:Lock Share Row Exclusive 具体来讲有主外键约束时update/delete ... ;...
没有commit之前插入同样的一条记录会没有反应, 因为后一个3的锁会一直等待上一个3的锁, 我们必须释放掉上一个才能继续工作。 4级锁有:Create Index, Lock Share locked_mode为2,3,4不影响DML(insert,delete,update,select)操作, 但DDL(alter,drop等)操作会提示ora-00054错误。
lo.locked_mode from v$locked_object lo, dba_objects ao, v$session sess where ao.object_id = lo.object_id and lo.session_id = sess.sid; image.png (3)杀掉锁表进程 alter system kill session '68,51'; --分别为SID和SERIAL#号
一个事务开始以后至少产生几个锁,第一个行上加锁了,行上的锁你是看不见的,因为它在行上,但是我们开始一个事务有一个事务锁,同时在表上应该加了个RX锁,应该这时候有两个锁,一个TX锁事务锁,一个是TM级别上的表级的RX锁。 使用语句 select sid,type,id1,id2, decode(lmode,0,'None',1,'Null',2,...
ORACLE基础之oracle锁(oraclelockmode)详解 ORACLE⾥锁有以下⼏种模式:0:none 1:null 空 2:Row-S ⾏共享(RS):共享表锁,sub share 3:Row-X ⾏独占(RX):⽤于⾏的修改,sub exclusive 4:Share 共享锁(S):阻⽌其他DML操作,share 5:S/Row-X 共享⾏独占(SRX):阻⽌其他事务操作,...
当事务获得行锁后,此事务也将自动获得该行的表锁(共享锁),以防止其它事务进行 DDL 语句影响记录行的更新。 事务也可以在进行过程中获得共享锁或排它锁,只有当事务显示使用 LOCK TABLE 语句显示的定义一个排它锁时,事务才会获得表上的排它锁,也可使用 LOCK TABLE 显示的定义一个表级的共享锁。