• enq: TX


    10.3.6.2.4 TX enqueue:
    
    那些是排他的当一个事务开始它的第一次改变持有知道COMMIT或者ROLLBACK:
    
    Waits for TX in mode 6:
    
    发生当一个session 是等待一个row level lock 被其他session持有。
    
    这个发生在一个yoghurt是更新或者删除一个记录, 另外一个session需要来更新或者删除。
    
    这类TX enqueue 等待对应于 wait event enq: TX - row lock contention.
    
    
    解决方案是第一个持有lock的session执行一个COMMIT或者ROLLBACK
    
    SESSION 1:
    
    SQL> select * from v$mystat where rownum<2;
    
           SID STATISTIC#	   VALUE
    ---------- ---------- ----------
          1178	    0	       0
    SQL> update test set id=200 where id=2;
    
    已更新 1 行。
    
    
    
    SESSION 2:
    
    
    SQL> select * from v$mystat where rownum<2;
    
           SID STATISTIC#	   VALUE
    ---------- ---------- ----------
           584	    0	       0
    
    SQL> 
    SQL> update test set id=300 where id=2;  --hang
    
    
    SQL>  select * from v$lock a where sid in (1178,584) and type in ('TM','TX');
    
    ADDR		 KADDR			 SID TY        ID1	  ID2	   LMODE    REQUEST	 CTIME	    BLOCK
    ---------------- ---------------- ---------- -- ---------- ---------- ---------- ---------- ---------- ----------
    00000001840D1910 00000001840D1968	 584 TX     196631	47429	       0	  6	    81		0
    00007FB180654A68 00007FB180654AC8	 584 TM      99891	    0	       3	  0	    81		0
    00007FB180654A68 00007FB180654AC8	1178 TM      99891	    0	       3	  0	   131		0
    000000017F752FA0 000000017F753018	1178 TX     196631	47429	       6	  0	   131		1
    
    
    
    SQL> select sid, SERIAL#, USERNAME,p1,p2,p3,event, BLOCKING_SESSION from v$session where sid in (1178,584);
    
           SID    SERIAL# USERNAME				     P1 	P2	   P3 EVENT							       BLOCKING_SESSION
    ---------- ---------- ------------------------------ ---------- ---------- ---------- ---------------------------------------------------------------- ----------------
           584	49455 QUERY			     1415053318     196631	47429 enq: TX - row lock contention						   1178
          1178	53813 QUERY			     1650815232 	 1	    0 SQL*Net message from client
    
    SQL> 
    

  • 相关阅读:
    c++拷贝构造函数和赋值运算符
    c++运算符定义为成员函数还是非成员函数
    c++重载运算符位置的限制
    为什么operator<<运算符重载一定要为友元函数
    动态规划求一定数量骰子和的概率
    vector之reserve的坑
    c++ decltype和auto对比学习
    asio的前摄器模式
    动态显示当前时间
    js遍历二维数组
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13349733.html
Copyright © 2020-2023  润新知