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

联系:手机(+86 13429648788) QQ(107644445)QQ咨询惜分飞

标题:数据文件自扩展引起—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表空间进行扩展之后,立马恢复正常.实际的例子证明,在实际生产中特别是高并发生产库中,数据文件自扩展会严重影响数据库性能.

此条目发表在 Oracle性能优化 分类目录,贴了 标签。将固定链接加入收藏夹。

数据文件自扩展引起—enq: HW – contention》有 2 条评论

  1. 惜分飞 说:

    这个可能实际情况,从我接触的实际用户来说,还是使用small file的比较多,bigfile 主要是在测试环境中比较多。

  2. 小艾 说:

    请教个问题,生产环境中,需要建1T的表空间,是用一个大表空间好呢,还是用很多个32G的小表空间好呢?