数据文件自扩展引起—enq: HW – contention

联系:手机/微信(+86 17813235971) QQ(107644445)

标题:数据文件自扩展引起—enq: HW – contention

作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

客户反馈数据库比较慢,严重影响业务运行,让我们进行分析
enq: HW – contention等待明显
登录上去查看发现大量的enq: HW – contention等相关等待.
1
2


确认相关对象

SQL> select p3 from v$session_wait where event = 'enq: HW - contention';
   P3
----------
34083635
SQL> select dbms_utility.data_block_address_block(34083635) RDBA_FILE,
  2  dbms_utility.data_block_address_file(34083635) RDBA_BLOCK from dual;
 RDBA_FILE RDBA_BLOCK
---------- ----------
    529203          8
SQL>  select owner, segment_type, segment_name,tablespace_name
  2      from dba_extents
  3      where file_id = 8
  4     and 529203 between block_id and block_id + blocks - 1;
   OWNER   SEGMENT_TYPE        SEGMENT_NAME 	    TABLESPACE_NAME
---------- ------------------- -------------------  -------------------
XXXX       INDEX               T_TRADEITEM_85        USERS

确认对应sql
3


分析表空间使用情况
4


增加数据文件
5


再次查询表空间使用情况
6


查询等待事件
7


通过这里的分析,由于USERS表空间的空闲表空间已经被完全使用,后续使用需要扩展,因而引起了enq: HW – contention等待,以及由于该等待引起了其他相关等待,当users表空间进行扩展之后,立马恢复正常.实际的例子证明,在实际生产中特别是高并发生产库中,数据文件自扩展会严重影响数据库性能.