段上的等待事件 —— enq: HW - contention

來源:互聯網
上載者:User

為防止多個進程同時修改HWM而提供的鎖稱為HW鎖。想要移動HWM的進程必須獲得HW鎖。若在擷取HW鎖過程中發生爭用,則等待enq: HW - contention事件。HW鎖爭用大部分是大量執行insert所引發的。

眾所周知,Oracle高水位線標誌著該線以下的block均被Oracle格式過,通俗一點講就是該高水位線以下的block都被Oracle使用過。 通常在執行insert操作時,當高水位線以下block不夠用時,Oracle將會推進高水位線。更進一步講,當有多個進程在同時進行insert操作時,比較容易引起高水位線爭用,主要表現為enq: HW - contention。

  1. SQL> select event#,name,parameter1,parameter2,parameter3 from v$event_name where name = 'enq: HW - contention';  
  2.   
  3.     EVENT# NAME                                     PARAMETER1           PARAMETER2           PARAMETER3  
  4. ---------- ---------------------------------------- -------------------- -------------------- --------------------   
  5.        250 enq: HW - contention                     name|mode            table space #        block  
如何找到事件:'enq: HW - contention' 熱點對象:

查看v$session_wait,應該會有如下等待事件:

  1. SQL> select p1, p2, p3 from v$session_wait where event = 'enq: HW - contention';  
  2.    
  3.         P1         P2         P3  
  4. ---------- ---------- ----------   
  5. 1213661190          7  140003563  
  6. 1213661190          7  140003563  
  7. 1213661190          7  140003563  
  8. 1213661190          7  140003563  
  9. 1213661190          7  140003563  
  10. 1213661190          7  140003563  
  11. 1213661190          7  140003563  
  12.    
  13. 7 rows selected  
7 rows selected
通過P3進行DBMS_UTILITY轉換可以獲知發生爭用的檔案和block:
  1. SQL> select dbms_utility.data_block_address_block(140003563),dbms_utility.data_block_address_file(140003563) from dual;  
  2.   
  3. DBMS_UTILITY.DATA_BLOCK_ADDRESS_BLOCK(140003563) DBMS_UTILITY.DATA_BLOCK_ADDRESS_FILE(140003563)  
  4. ------------------------------------------------ -----------------------------------------------   
  5.                                          1591531                                              33  
進而通過file#和block#定位對象:
  1. SQL> select owner, segment_type, segment_name   
  2.   2  from dba_extents   
  3.   3  where file_id = 33   
  4.   4  and 1591531 between block_id and block_id + blocks - 1;   

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.