We can examine
X$BH
table to obtain buffer header information,The BH stands for buffer header. Structures that maintain a list of data buffer headers are called:Hash buckets.
Hash buckets
are grouped by relative DBA and class number.
Hash chains
list data buffer headers in one hash bucket.
Cache Recycle Pool
For randomly accessed large tables
Default Pool
For normally accessed tables
Keep Pool
for frequently updated small tables Set
DB_BLOCK_LRU_LATCHES
parameter to create multiple LRU lists.This parameter sets the number of latches, and it is best used on a multi-CPU system.
DB_BLOCK_BUFFERS
sets the number of buffers to allocate in the buffer cache. DB_BLOCK_LRU_EXTENDED_STATISTICS is obsolete in Oracle8i.
DB_WRITER_PROCESSES
sets the number of database writer processes.
Cache buffers LRU chain protects LRU lists.
The total number of
working sets per instance
is defined by
DB_BLOCK_LRU_LATCHES
. There is one latch per set. The number of DBWR processes cannot be greater than the number of working sets. Oracle get buffers as below steps:
- get a buffer descriptor
- specify a mode in which a buffer should be obtained
- scan the appropriate hash chain
- find the appropriate buffer in the chain or read from disk
- attach a state object to the buffer header
- To provide checkpoints
- To do free requests
- To do ping writes(obsolete)
- ALTER TABLESPACE...BEGIN BACKUP
- Make a tablespace read only
- Cache buffers lru chain
- Cache buffers chains
- Checkpoint queue latch
- X$KCBWAIT
本文转自maclean_007 51CTO博客,原文链接:http://blog.51cto.com/maclean/1276720