I'd be curious to hear anyone's reasons for preferring OS
cache to DB cache.
It seems pretty clear cut to me that it is better to allow
Oracle to manage its own cache since it has much more knowledge available
internally to help predict which blocks are most likely to be needed
again. I've had good results with CIO (Concurrent, a.k.a non-buffered,
non-inode-locking I/O) on AIX, but I did increase db_cache_size to make up for
the lack of filesystem buffering - in one case from 600M to 1500M, in another I
just used CIO from the beginning so there was no before/after comparison, but
performance has been excellent with CIO. In the case where I switched from
regular, buffered I/O to CIO and increased db_cache_size from 600M to
1500M, the performance of a fixed set of batch jobs improved from an average
runtime of 166 minutes to 129 minutes - so a 22% reduction in runtime, but
it's difficult to say how much of that improvement was from switching to
CIO and how much was just due to the increase in db_cache_size
alone.
Over the years, I've read differing opinions
on balancing the os cache and the database cache.
Privileged/Confidential Information may be contained in this message or attachments hereto. Please advise immediately if you or your employer do not consent to Internet email for messages of this kind. Opinions, conclusions and other information in this message that do not relate to the official business of this company shall be understood as neither given nor endorsed by it.