联系:手机/微信(+86 17813235971) QQ(107644445)
标题:数据文件自扩展引起—enq: HW – contention
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
客户反馈数据库比较慢,严重影响业务运行,让我们进行分析
enq: HW – contention等待明显
登录上去查看发现大量的enq: HW – contention等相关等待.


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





请教个问题,生产环境中,需要建1T的表空间,是用一个大表空间好呢,还是用很多个32G的小表空间好呢?
这个可能实际情况,从我接触的实际用户来说,还是使用small file的比较多,bigfile 主要是在测试环境中比较多。