Enq : HW-contention高水位線的擴充套件競爭

dotaddjj發表於2012-07-17

Enq : HW-contention等待事件,是由於大量徵用segment的高水位線引起的佇列競爭。

SQL> select user_id,sql_id,p1,p2,p3,current_obj#,current_block# from v$active_session_history where event='enq: HW - contention' and rownum<2;

USER_ID SQL_ID P1 P2 P3 CURRENT_OBJ# CURRENT_BLOCK#

------- ------------- ------- --- --- ------------ ------------ --------------

56 4btv9g407b2x2 1213661190 1 8397177 51555 196029

SQL> col parameter1 for a20

SQL> col parameter3 for a20

SQL> col parameter2 for a20

SQL> select parameter1,parameter2,parameter3 from v$event_name where name='enq: HW - contention'

2 ;

PARAMETER1 PARAMETER2 PARAMETER3

-------------------- -------------------- --------------------

name|mode table space # block

可以利用p3來找到file_Idsegment來找到產生hw競爭的物件,進而採取相應的辦法來處理。

SQL> select dbms_utility.data_block_address_file(8397177) file_id,dbms_utility.data_block_address_block(8397177) block_id from dual;

FILE_ID BLOCK_ID

---------- ----------

2 8569

進而利用dba_extents來找到相應的segment來診斷問題

select /*+rule*/* from dba_extents where relative_fno=2 and file_id=2 and 8569 between block_id and block_id+blocks

一般系統出現大量session併發insert導致物件的hwm競爭,可以採取增加大的extent或者做hash分割槽來解決熱點快,hw競爭,看來和上次的碰見一個index contention分裂差不多,會話中出現大量的索引分裂引起的佇列等待,採取hash global index順利解決了。

熱點物件分割槽依然是解決問題的實用方法!

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25362835/viewspace-1058826/,如需轉載,請註明出處,否則將追究法律責任。

相關文章