AULT池,它的大小就是数据缓冲区Buffer Cache的大小,由初始化参数db_cache_size(8i中是db_block_size*db_block_buffers)决定。
17:33:14 sys@felix SQL>show parameter db_cache_size
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
db_cache_size big integer 0
17:37:24 sys@felix SQL>
如果我们在创建数据表或修改数据表时指定STORAGE (BUFFER_POOL KEEP)或者STROAGE(BUFFER_POOL RECYCLE)语句,就设置了这张表使用KEEP或者RECYCLE缓冲区。这两个缓冲区的大小分别由初始化参数db_keep_cache_size和db_recycle_cache_size来决定。
17:39:03 sys@felix SQL>show parameter db_keep_cache_size
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
db_keep_cache_size big integer 0?
| Property |
Description |
| Parameter type |
Big integer |
| Syntax |
DB_KEEP_CACHE_SIZE = integer [K | M | G] |
| Default value |
0 (DB_KEEP_CACHE_SIZE is not configured by default) |
| Modifiable |
ALTER SYSTEM |
| Range of values |
Minimum: 0 (values greater than zero are automatically modified to be either the granule size * number of processor groups, or 4 MB * number of CPUs, whichever is greater) Maximum: operating system-dependent |
| Basic |
No |
DB_KEEP_CACHE_SIZE specifiesthe size of the KEEP bufferpool. The size of the buffers in the KEEP buffer pool is the primary blocksize (the block size defined by the DB_BLOCK_SIZE initialization parameter).
17:39:24 sys@felix SQL>show parameter db_recycle_cache_size
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
db_recycle_cache_size big integer 0
17:39:42 sys@felix SQL>
| Property |
Description |
| Parameter type |
Big integer |
| Syntax |
DB_RECYCLE_CACHE_SIZE = integer [K | M | G] |
| Default value |
0 (DB_RECYCLE_CACHE_SIZE is not configured by default) |
| Modifiable |
ALTER SYSTEM |
| Range of values |
Minimum: 0 (values greater than zero are automatically modified to be either the granule size * number of processor groups, or 4 MB * number of CPUs, whichever is greater) Maximum: operating system-dependent |
| Basic |
No |
DB_RECYCLE_CACHE_SIZE specifiesthe size of the RECYCLE bufferpool. The size of the buffers in the RECYCLE pool is the primary block size(the block size defined by the DB_BLOCK_SIZE initialization parameter).
17:39:42 sys@felix SQL>show parameter cache_size
NAME TYPE VALUE
---------------------------------------------------------- ------------------------------
client_result_cache_size big integer 0
db_16k_cache_size big integer 0
db_2k_cache_size big integer 0
db_32k_cache_size big integer 0
db_4k_cache_size big integer 0
db_8k_cache_size big integer 0
db_cache_size big integer 0
db_flash_cache_size big integer 0
db_keep_cache_size big integer 0
db_recycle_cache_size big integer 0
同时还可以看到,在Oracle9i以后存在一系列的db_nk_cache_size参数,这是Oracle9i中引入的多块大小支持。Oracle9i以后允许在同一个数据库中存在多种Block_size的表空间,分别支持: 2k,4k,8k,16k和32k 的Block_size,其中,由db_block_size定义的块大小被称为主Block_size。如果在数据库中创建不同block_size的表空间则需要分别设定db_nk_cache_size参数。
各缓冲池的设置,我们可以通过查询v$buffer_pool得到:
?
17:43:03 sys@felix SQL>select id,name,block_size,current_size,target_size from v$buffer_pool;
ID NAME BLOCK_SIZE CURRENT_SIZE TARGET_SIZE
---------- ---------------------------------------- ---------- ------------ -----------
3 DEFAULT 8192 72 72
17:46:03 sys@fel