暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

DB_nK_CACHE_SIZE参数设置与数据库默认块大小之间的限制

原创 yBmZlQzJ 2022-12-22
627

DB_nK_CACHE_SIZE参数的取值有很多种,有2k、4k、8k、16k、32k。在设置此参数时,我们需要注意的是,与数据库默认的块尺寸相同的那个参数是不能被设定的。例如,如果数据库的默认块尺寸是8k,那么当我们尝试设置“DB_8K_CACHE_SIZE”参数时便会遭遇报错(报错内容:ORA-00380: cannot specify db_8k_cache_size since 8K is the standard block size)。这是由于这个信息已经体现在db_cache_size参数上。
1.查看数据库默认的块大小

SQL> show parameter db_block_size

NAME                                 TYPE                              VALUE
-------- ----------------
db_block_size                        integer                           8192

2.查看所有与cache size相关的参数

SQL> show parameter cache_size

NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
client_result_cache_size             big integer                       0
data_transfer_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

3.尝试调整非数据库默认块大小对应的参数

SQL> alter system set db_32k_cache_size=1M;

System altered.

SQL> show parameter cache_size

NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
client_result_cache_size             big integer                       0
data_transfer_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                       16M
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

调整成功,注意这里的一个现象,设置的是1M大小,系统会自动将这个数值进行调整,调整的依据是:values greater than zero are automatically modified to be either the user-specified-size rounded up to granule size or 4MB number of CPUs granule size, whichever is greater

4.尝试调整数据库默认块大小对应的参数

SQL> alter system set db_8k_cache_size=1m;
alter system set db_8k_cache_size=1m
*
ERROR at line 1:
ORA-32017: failure in updating SPFILE
ORA-00380: cannot specify db_8k_cache_size since 8K is the standard block size

当数据库使用非标准块表空间时,DB_nK_CACHE_SIZE参数将会派上用场,正所谓特殊场合特殊设置,因此在默认块尺寸下我们毋须设置与之对应的cache参数。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论