Oracle中的SGA是实例的重要组成部分,对Oracle数据的操作都放在SGA中完成,而SGA也由多个组件构成,其中9I后支持多个块大小,可以通过设置db_nk_cache_size来配置nk大小的块缓冲区,只有在设置了db_nk_cache_size参数后才能创建相应块大小的表空间。
于是开始设置db_nk_cache_size
alter system set db_nk_cache_size=4M;
show parameter db_nk_cache_size
查看该参数发现大小为8M,而不是设置的4M,有点奇怪!
这里涉及到了SGA中内存分配的粒度问题,引入了一个粒组(granule)的概念,在9I版本,如果SGA小于128M,则粒组大小为4M,否则为16M;在10G版本中,如果SGA小于1G,则粒组为4M,否则大于4M。本机数据库版本为10G,难道粒组为8M?
查看SGA粒组大小:
select * from v$sgainfo where name='Granule Size';
发现结果大小为4M,那么为什么db_nk_cache_size一分配就是8M呢?
经过多方查找,终于发现问题:初始分配大小不仅与粒组大小有关,还与CPU有关,本机为双核,于是乎分配大小为粒组大小的两倍!!
分享到:
相关推荐
在Oracle中,`DB_nK_CACHE_SIZE`初始化参数用于设置特定大小数据块的缓冲区缓存大小。在示例中,系统被配置为将`db_16k_cache_size`设置为15MB,然后创建一个名为`tbs_16k`的表空间,使用16KB的块大小。这可以通过...
- DB_CACHE_SIZE、DB_RECYCLE_CACHE_SIZE和DB_KEEP_CACHE_SIZE分别定义不同策略的数据缓冲区大小。 - LOG_BUFFER设置重做日志缓冲区的大小。 - LARGER_POOL_SIZE、JAVA_POOL_SIZE和各种Db_xK_cache_size参数针对不同...
DB_nK_CACHE_SIZE、DB_KEEP_CACHE_SIZE和DB_RECYCLE_CACHE_SIZE分别用于非标准块、保持池和回收池的配置。 日志缓冲区用于存储事务日志,较大的日志缓冲区能减少磁盘I/O。频繁执行大事务的系统应适当增加LOG_BUFFER...
在Oracle 12c中,通过初始化参数DB_nK_CACHE_SIZE来设置特定大小(本例中是16KB大小)的缓冲区大小。这涉及到修改参数文件,改变db_16k_cache_size的值,并且在创建表空间时指定块大小(blocksize)。 例如,在本题中...
- **NoDefault Pool**: 包括db_nk_cache_size、db_keep_cache_size和db_recycle_cache_size等参数,用于指定不同类型的缓存空间。 - `db_nk_cache_size`: 指定非标准块大小内存空间,例如2k、4k、16k、32k。 - `...
BLOCK_SIZE, Non-Standard Block Sizes)、SGA相关参数(DB_CACHE_SIZE, DB_nK_CACHE_SIZE etc.)、指定最大进程个数(PROCESSES)、回退空间管理(UNDO_MANAGEMENT, UNDO_TABLESPACE)、设置许可参数(LICENSE_MAX_SESSIONS...
在Oracle 9i之前,数据缓冲区大小由DB_BLOCK_BUFFERS参数控制,而在后续版本中,使用DB_CACHE_SIZE和DB_nK_CACHE_SIZE参数来设定不同大小的数据块缓存。通过计算数据缓冲区的命中率(BUFFER HIT RATIO),可以评估其...
- **Nonstandard Pool**:非标准块标准池,大小由`DB_nK_cache_size`决定。 - **Recycle Pool**:回收池,大小由`db_recycle_cache_size`决定。 - **Shared Pool**:共享池,大小由`shared_pool_size`决定,其中包含...
它分为默认池和非默认池,如default pool(db_cache_size)、nodefault pool(db_nk_cache_size)、keep缓存(db_keep_cache_size)和recycle缓存(db_recycle_cache_size),分别用于不同类型的块管理。 实例管理...
- **DB NK Cache Size**:非标准块大小的缓冲池。 - **DB Flash Cache Size**:用于闪回操作的缓冲池。 - **热块监控** - 使用`CACHEBUFFERSCHAINS`和`X$BH->TCH`来监控热点块的访问情况。 - **共享池** - **...
- **非标准数据高速缓存**:通过 `DB_nK_CACHE_SIZE` 参数定义,用于非标准数据块大小的数据缓存。 #### 写入操作 - **DBWR (Database Writer Process)**:负责将脏数据块写回磁盘。 - **触发条件**: - 系统...