Performance impact when Tablespace Datafile Autoextend is enabled

Performance impact when Tablespace Datafile Autoextend is enabled

The performance impact would be depending on the moment of the day (number of current transactions, IO activity in the storage system, etc.) and the simple answer is ‘yes, auto-extending a datafile could impact concurrent transactional activity’. The real answer is a lot more complex.

The extent to which extending a datafile might cause concurrency issues depends upon:

 How long it takes to extend the datafile

  What transactions are occurring at the same time as (1)

When a datafile is extended, the session performing the operation will acquire a number of locks. Generally these locks will not affect concurrent transactions, but some locks may do. For example, we have to update the controlfile with the updated datafile information. This will involve acquiring the CF (controlfile) enqueue in exclusive mode. If for some reason this enqueue is held for too long, it could possibly cause checkpoints to hang (by blocking the CKPT) process. This may then block sessions doing DML because we may be unable to write redo to the online log files. Note that this is not an usual scenario, but it could possibly happen.

It is not possible to list every potential concurrency blocking scenario. If such a hang did occur we would need to have the customer dump HANGANALYZE dumps to investigate the reason.

The best way to minimize the risk of concurrency issues would be to:

 Size datafiles correctly to minimise auto-extension activity

  Monitor datafiles’ free space and manually resize files before auto-extension is required

  Do manual resizes during off-peak periods

Avinash Venkatraman

Lead Engineer- DBA and Middleware

4 年

Excellent post

回复

要查看或添加评论,请登录

Ravin Maharaj的更多文章

社区洞察

其他会员也浏览了