题目:
4. You have set some of the initialization parameters as:
DB_BLOCK_SIZE=8KB
SGA_MAX_SIZE=2GB
SGA_TARGET =0
SHARED_POOL_SIZE=120MB
DB_CHCHE_SIZE=896MB
STREAM_POOL_SIZE=0
LARGE_POOL_SIZE=110MB
Which two statements are correct?(Choose two).
A. You can not set a value for the DB_8K_CHCHE_SIZE parameter.
B. If you increase the size of the large pool to 120MB, then the memory
allocated to the shared poll will be reduced to 110MB.
C. If the value for SGA_TARGET is changed to 1GB and SHARED_POOL_SIZE is
120MB, then memory cannot be taken from the shared pool, even if the shared
pool has free space available.
D. If an application attempts to allocate more than 120MB from the shared
pool and free space is available in the buffer pool, then the free space
from the buffer pool is allocated to the shared pool.
Answer: AC
题目翻译:初始化参数如下,哪两项描述是正确的?
答案解释:
A:提到了一个知识点,当设置了primary(主要、首要)的block size时,就不能设定对应的cache size,举个例子:db_block_size=8k,那么8k的cache size必须要用db_cache_size设定,而不能用db_8k_cache_size设定,因为8k是primary的,但是可以设定db_4k_cache_size=16m等等,这是因为4k的不是primary的,要注意;具体还需要参考官方文档的解释;
C:尽管SGA的设定可以使得其他参数发生改变,但是SHARED_POOL_SIZE=120MB这种指定指的是最小值不能低于120MB所以不能被剥夺free空间;
B和D通过C可知道都是错误的;
关于A官方文档解释如下:
*********************************************************************************************************************
DB_CACHE_SIZE
Property | Description |
---|---|
Parameter type | Big integer |
Syntax | DB_CACHE_SIZE = integer [K | M | G] |
Default value | If SGA_TARGET is set: If the parameter is not specified, then the default is 0 (internally determined by the Oracle Database). If the parameter is specified, then the user-specified value indicates a minimum value for the memory pool. If |
Modifiable | ALTER SYSTEM |
Basic | No |
DB_CACHE_SIZE
specifies the size of the DEFAULT
buffer pool for buffers with the primary block size (the block size defined by the DB_BLOCK_SIZE
initialization parameter).
The value must be at least 4M * number of cpus
(smaller values are automatically rounded up to this value). A user-specified value larger than this is rounded up to the nearest granule size. A value of zero is illegal because it is needed for the DEFAULT
memory pool of the primary block size, which is the block size for the SYSTEM
tablespace.
*******************************************************************************************************************************
DB_nK_CACHE_SIZE
Property | Description |
---|---|
Parameter type | Big integer |
Syntax | DB_[2 | 4 | 8 | 16 | 32]K_CACHE_SIZE = integer [K | M | G] |
Default value | 0 (additional block size caches are 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_
n
K_CACHE_SIZE
(where n
= 2, 4, 8, 16, 32) specifies the size of the cache for the n
K
buffers. You can set this parameter only when DB_BLOCK_SIZE
has a value other than n
K
. For example, if DB_BLOCK_SIZE
=4096
, then it is illegal to specify the parameter DB_4K_CACHE_SIZE
(because the size for the 4 KB block cache is already specified by DB_CACHE_SIZE
).
Do not set this parameter to zero if there are any online tablespaces with an n
K
block size.
Operating system-specific block size restrictions apply. For example, you cannot set DB_32K_CACHE_SIZE
if the operating system's maximum block size is less than 32 KB. Also, you cannot set DB_2K_CACHE_SIZE
if the minimum block size is greater than 2 KB.