Call now: 252-767-6166  
Oracle Training Oracle Support Development Oracle Apps

 E-mail Us
 Oracle Articles
New Oracle Articles

 Oracle Training
 Oracle Tips

 Oracle Forum
 Class Catalog

 Remote DBA
 Oracle Tuning
 Emergency 911
 RAC Support
 Apps Support
 Oracle Support

 SQL Tuning

 Oracle UNIX
 Oracle Linux
 Remote s
 Remote plans
 Application Server

 Oracle Forms
 Oracle Portal
 App Upgrades
 SQL Server
 Oracle Concepts
 Software Support

 Remote S


 Consulting Staff
 Consulting Prices
 Help Wanted!


 Oracle Posters
 Oracle Books

 Oracle Scripts

Don Burleson Blog 







db_cache_size initialization parameter 

Oracle Tips by Burleson Consulting

The db_cache_size initialization parameter (formerly db_block_buffers) governs the size of the RAM data buffer cache region.

Oracle has the v$db_cache_advice utility to determine the marginal benefit (in terms of reducing disk reads) by adding more data cache.

Staring in Oracle9i we also have separate database cache size parameters for multiple blocksizes, including db_nk_cache_size.  Some experts say that Oracle indexes should be removed from db_cache_size and moved into the db_32k_cache_size region to build cleaner tree structures and reduce I/O for index range scans.

It is important to remember that there are downsides to having a super-large db_cache_size. While direct access to data is done with hashing, there are times when the database must examine all of the blocks in the RAM cache.

  • Systems with high Invalidations – Whenever a program issues a truncate table, uses temporary tables or runs a large data purge, Oracle must sweep all of the blocks in the db_cache_size to remove dirty blocks. This can cause excessive overhead for system with a db_cache_size greater than 10 gigabytes.

  • High Update Systems – The database writer (DBWR) process must sweep all of the blocks in db_cache_size when performing an asynchronous write. Having a huge db_cache_size can cause excessive work for the database writer.

  • RAC systems – Systems using Oracle9i RAC may experience high cross-instance call when using a large db_cache_size in multiple RAC instances. This inter-instance “pinging” can cause excessive overhead, and that is why RAC DBA’s try to segregate RAC instances to access specific areas of the database.


The Ion tool plots the historic usage of your db_cache_size:


Also, see my notes on db_cache_size:

dynamic re-sizing of db_cache_size

db_cache_size advice

Oracle multiple blocksize hash cluster table and large db_cache_size

Oracle RAC db_block_size db_cache_size configuration

Oracle10g large db_keep_cache_size db_cache_size multiple block size

Oracle 10g Windows multiple blocksize keep pool large db_cache_size

Database Optimization with db_cache_size

Oracle Disk Architecture and db_cache_size

Oracle9i v$db_cache_advice

Oracle Server Bottlenecks and cache size

Oracle disk I/O tuning data buffers with db_cache_size





Oracle Training at Sea
oracle dba poster

Follow us on Twitter 
Oracle performance tuning software 
Oracle Linux poster


Burleson is the American Team

Note: This Oracle documentation was created as a support and Oracle training reference for use by our DBA performance tuning consulting professionals.  Feel free to ask questions on our Oracle forum.

Verify experience! Anyone considering using the services of an Oracle support expert should independently investigate their credentials and experience, and not rely on advertisements and self-proclaimed expertise. All legitimate Oracle experts publish their Oracle qualifications.

Errata?  Oracle technology is changing and we strive to update our BC Oracle support information.  If you find an error or have a suggestion for improving our content, we would appreciate your feedback.  Just  e-mail:  

and include the URL for the page.


Burleson Consulting

The Oracle of Database Support

Oracle Performance Tuning

Remote DBA Services


Copyright © 1996 -  2020

All rights reserved by Burleson

Oracle ® is the registered trademark of Oracle Corporation.