enq: TX - row lock contention(一)
2010-04-14 23:43
369 查看
enq: TX - row lock contention
系统中一直发生
enq: TX - row lock contention
对硬的语句是一个insert
不知道如何处理
再现等待,着急!
看下lmode是多少
列上有约束或者有主键?
lmod=6
bitmap index ?
检查下是不是主键约束,唯一索引限制了
查询v$lock里有一个block=1,说明该session 阻晒了其他session
被阻塞的session都市同一个insert语句insert into T_CONTCT_PRUCT_LOG
没有bitmap index
这个问题好像很简单。
一个insert 没有commit.
而这个列上有约束,另一个session Insert只能被block住。
--------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------
顺便问下:commit和释放表的锁还是有区别?
这个insert语句的commit,代表释放对表的lock?>
yes,commit and rollback will release the resources hold by the transaction.
QUOTE:
原帖由 dhcwenOra 于 2007-12-26 16:10 发表
补充一下,delete也会师一样的情况!
更补充到:对于row lock,应该是DML这类情况,都会一样。
---------------------------------------------------------------------------------------------------------------------------------
QUOTE:
原帖由 joeldavid 于 2007-12-26 15:40 发表
session1往t1插入了一条数据,然后没有提交;session2往t1插入了一条数据,由于怕主建重复,session2需要等待session1 commit;
这样理解对吗?
session 2 需要等待session1对t1的lock释放后才可以
如果你插入的是两条不同的记录,是没有问题的。
---------------------------------------------------------------------------------------------------------------------------------
结帖了;
非常感谢各位的帮忙!
总结一下:
1,两个不同的SESSION同时插入或者在没有COMMIT时先后插入相同的记录到同一个表时,发生TX阻赛;
2,两个不同的SESSION同时插入不会发生TX阻赛;
发生1的场合:
由于页面没有禁止重复提交或刷新,用户可能会不断的刷新,造成TX阻赛现象!
**************************************************************************************
QUOTE:
--------------------------------------------------------------------------------
原帖由 joeldavid 于 2007-12-26 15:47 发表
--session 1
SQL> create table t1(x int primary key);
表已创建。
SQL> insert into t1 values(1);
已创建 1 行。
--session 2
SQL> insert into t1 values(1);
was block by session 1;
SQL> select sid,type,id1,id2 ,lmode,request,block from v$lock where sid in (151,156) and type='TX';
SID TY ID1 ID2 LMODE REQUEST BLOCK
---------- -- ---------- ---------- ---------- ---------- ----------
151 TX 327713 1334 0 4 0
151 TX 65580 1271 6 0 0
156 TX 327713 1334 6 0 &nb
**********************************************************************************
顺便问下:commit和释放表的锁还是有区别?
这个insert语句的commit,代表释放对表的lock?>
--------------------------------------------------------------------------------
yes,commit and rollback will release the resources hold by the transaction.
**********************************************************************************
QUOTE:
--------------------------------------------------------------------------------
原帖由 dhcwenOra 于 2007-12-26 16:10 发表
补充一下,delete也会师一样的情况!
--------------------------------------------------------------------------------
更补充到:对于row lock,应该是DML这类情况,都会一样。
***********************************************************************************
QUOTE:
--------------------------------------------------------------------------------
原帖由 joeldavid 于 2007-12-26 15:40 发表
session1往t1插入了一条数据,然后没有提交;session2往t1插入了一条数据,由于怕主建重复,session2需要等待session1 commit;
这样理解对吗?
session 2 需要等待session1对t1的lock释放后才可以
--------------------------------------------------------------------------------
如果你插入的是两条不同的记录,是没有问题的。
************************************************************************************
结帖了;
非常感谢各位的帮忙!
总结一下:
1,两个不同的SESSION同时插入或者在没有COMMIT时先后插入相同的记录到同一个表时,发生TX阻赛;
2,两个不同的SESSION同时插入不会发生TX阻赛;
发生1的场合:
由于页面没有禁止重复提交或刷新,用户可能会不断的刷新,造成TX阻赛现象!
from:
http://www.itpub.net/viewthread.php?tid=916999
相关文章推荐
- enq: TX - row lock contention“等待事件的处理
- 多个会话引起唯一键冲突时(enq:TX-row lock contention,mode=4)
- session 等待enq: TX - row lock contention
- 数据库出现 enq: TX - row lock contention
- enq: TX - row lock contention
- [Oracle] enq: TX - row lock contention 优化案例
- enq: TX - row lock contention 等待事件
- enq: TX - row lock contention(二)
- oracle enq: TX - row lock contention 解决方案(oracle SQL 语句在行锁上被阻塞 解决办法)
- AWR报表-enq: TX - row lock contention事件解决方法
- [Oracle] enq: TX - row lock contention 优化案例
- 大表建立索引引发enq: TX - row lock contention等待
- 深入分析 enq: TX - row lock contention
- enq: TX - row lock contention等待事件
- enq: TX - row lock contention(三)
- enq: TX - row lock contention故障处理一则
- 解决一则enq: TX – row lock contention的性能故障
- enq TX row lock contention 锁等待事件解决案例一起
- Oracle “enq: TX - row lock contention 等待事件 ”
- ORACE_常见等待事件001_enq: TX - row lock contention