等待事件:enq: HW – contention

接到客户反馈系统整体运行缓慢,查看awr,发现enq: HW - contention在等待事件中排top1.
file
mos文档740075.1中有详细的介绍。
enq: HW - contention字面上看比较容易理解,就是高水位的争用。segment做自动扩展时需要占用HW锁,如果自动扩展比较频繁,就会导致HW锁的争用。特别是LOB CLOB字段。
解决方法就是减少自动扩展的次数,那就是要提升每次自动扩展的空间值,具体方法如下:

1、通过ASH查看对应会话P2、P3的值,带入以下语句,查看是哪个块的争用导致的

select DBMS_UTILITY.DATA_BLOCK_ADDRESS_FILE(<p3value>) FILE#,
DBMS_UTILITY.DATA_BLOCK_ADDRESS_BLOCK(<p3value>) BLOCK#
from dual;

2、查询处理的FILE#、BLOCK#带入以下语句查询是哪个segment的

select owner, segment_type, segment_name
from dba_extents
where file_id = <FILE#>
and <BLOCK#> between block_id and block_id + blocks - 1 and tablespace_name = (select name from ts$ where ts#= <P2value>); 

3、通过以下语句,提高自动扩展的值

ALTER TABLE <lob_table> MODIFY LOB (<column_name>) (allocate extent (size <extent size>));

Related Posts