enq: TX - row lock contention
--------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------
顺便问下:commit和释放表的锁还是有区别?
这个insert语句的commit,代表释放对表的lock?>
QUOTE:
--------------------------------------------------------------------------------
原帖由 joeldavid 于 2007-12-26 15:47 发表
--session1
SQL>createtablet1(xintprimarykey);
表已创建。
SQL>insertintot1values(1);
已创建1行。
--session2
SQL>insertintot1values(1);
wasblockbysession1;
SQL>selectsid,type,id1,id2,lmode,request,blockfromv$lockwheresidin(151,156)andtype='TX';
SIDTYID1ID2LMODEREQUESTBLOCK
--------------------------------------------------------------
151TX3277131334040
151TX655801271600
156TX327713133460&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: