联系:手机/微信(+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表空间进行扩展之后,立马恢复正常.实际的例子证明,在实际生产中特别是高并发生产库中,数据文件自扩展会严重影响数据库性能.
这个可能实际情况,从我接触的实际用户来说,还是使用small file的比较多,bigfile 主要是在测试环境中比较多。
请教个问题,生产环境中,需要建1T的表空间,是用一个大表空间好呢,还是用很多个32G的小表空间好呢?