首页 > 数据库 > Oracle > 052-013题解析
You have executed this command to change the size of the database buffer cache:
SQL> ALTER SYSTEM SET DB_CACHE_SIZE=2516582;
System altered.
To verify the change in size, you executed this command:
SQL> SHOW PARAMETER DB_CACHE_SIZE
NAME TYPE VALUE
------------------- ----------- ------------------
db_cache_size big integer 4194304 4M
Why is the value set to 4194304 and not to 2516582?
A.because 4194304 is the granule size
B.because 4194304 is the standard block size
C.because 4194304 is the largest nonstandard block size defined in the database
D.because 4194304 is the total size of data already available in the database buffer cache
Answer: A
答案解析:
本题考得是最小内存管理的颗粒度。
我们可以查询动态系能视图表V$SGAINFO获取最小内存管理的颗粒度。
如果指定的size不是granule size的整数倍,则rounds到整数倍,例如,如果granule size为4M,指定DB_CACHE_SIZE as 10 MB,不是4的整数倍,则实际上DB_CACHE_SIZE as 为12M。
SQL> select * from v$sgainfo;
NAME BYTES RES
-------------------------------- ---------- ---
Fixed SGA Size 1339740 No
Redo Buffers 5160960 No
Buffer Cache Size 213909504 Yes
Shared Pool Size 314572800 Yes
Large Pool Size 4194304 Yes
Java Pool Size 4194304 Yes
Streams Pool Size 0 Yes
Shared IO Pool Size 0 Yes
Granule Size 4194304 No
Maximum SGA Size 836976640 No
Startup overhead in Shared Pool 58720256 No
NAME BYTES RES
-------------------------------- ---------- ---
Free SGA Memory Available 293601280
12 rows selected.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12798004/viewspace-1133306/ ,如需转载,请注明出处,否则将追究法律责任。