外键无索引导致Oracle数据库锁的经典问题


2年前的事情了,现在总结一下,至于深层次的外键索引导致数据库锁的原因网上文章比较多,这里就不再详细介绍了

1,数据库响应慢,登录后查看大量enq锁存在

  1. SQL> SELECT     
  2.   2  DECODE (request, 0, 'Holder: ''Waiter: ') status, SID, 
  3.   3  inst_id,ctime, id1, id2, lmode, request, TYPE 
  4.   4  FROM gv$lock 
  5.   5  WHERE (id1, id2, TYPE) IN (SELECT id1, id2, TYPE FROM gv$lock WHERE request > 0) 
  6.   6  ; 
  7.  
  8. STATUS        SID    INST_ID    CTIME         ID1    ID2     LMODE      REQUEST TY 
  9. -------- ------ ---------- ---------- ---------- ---------- ---------- ---------- --  
  10. Waiter:    1047      2     1932       23285      0         0        2 TM 
  11. Waiter:    1039      2     1158       23285      0         0        2 TM 
  12. Waiter:    1038      2     1659       23285      0         0        2 TM 
  13. Waiter:    1036      2     1601       23285      0         0        2 TM 
  14. Waiter:    1028      2      893       23285      0         0        2 TM 
  15. Waiter:    1025      2     1854       23285      0         0        2 TM 
  16. Waiter:    1024      2     1872       23285      0         0        2 TM 
  17. Waiter:    1020      2     2845       23285      0         0        2 TM 
  18. Waiter:    1018      2     2703       23285      0         0        2 TM 
  19. Waiter:    1004      2     1689       23285      0         0        2 TM 
  20. Waiter:     998      2     2934       23285      0         0        2 TM 
  21. Waiter:     981      2     1959       23285      0         0        2 TM 
  22. Waiter:     979      2     1813       23285      0         0        2 TM 
  23. Waiter:     978      2     2083       23285      0         0        2 TM 
  24. Waiter:     971      2     1723       23285      0         0        2 TM 
  25. Waiter:     969      2     2668       23285      0         0        2 TM 
  26. Waiter:     963      2     2920       23285      0         0        2 TM 
  27. ...... 

2,查看被锁住的会话执行的sql语句,一般是下面几个

  1. sql1 1fjf8sujb2wuw 
  2.  
  3. insert into WWW_VARIABLEINSTANCE (NAME_, CONVERTER_, TOKEN_, TO 
  4. KENVARIABLEMAP_, PROCESSINSTANCE_, STRINGVALUE_, CLASS_, ID_) va 
  5. lues (:1, :2, :3, :4, :5, :6, 'S', :7) 
  6.  
  7.  
  8. sql2 6ukh0kxukjthv 
  9.  
  10. insert into WWW_TOKEN (VERSION_, NAME_, START_, END_, NODEENTER 
  11. _, NEXTLOGINDEX_, ISABLETOREACTIVATEPARENT_, ISTERMINATIONIMPLIC 
  12. IT_, ISSUSPENDED_, NODE_, PROCESSINSTANCE_, PARENT_, SUBPROCESSI 
  13. NSTANCE_, ID_) values (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, 
  14. :11, :12, :13, :14) 
  15.  
  16. sql3 dgr3mp4cc6sjx 
  17.  
  18. insert into WWW_COMMENT (VERSION_, ACTORID_, TIME_, MESSAGE_, T 
  19. OKEN_, TASKINSTANCE_, ID_) values (:1, :2, :3, :4, :5, :6, :7) 
  20.  
  21. sql4 4fypdt56k14a3 
  22.  
  23. delete from WWW_SWIMLANEINSTANCE where ID_=:1 
  24.  
  25. sql5 g2hntwxrq2502 
  26.  
  27. delete from WWW_TASKINSTANCE where ID_=:1 
  28.  
  29.  
  30. sql6 agjsdnk7951hy 
  31.  
  32. delete from WWW_MESSAGE where TOKEN_=:1 
  • 1
  • 2
  • 3
  • 下一页

相关内容