ORA-00382与DB_nK_CACHE_SIZE参数设置
ORA-00382与DB_nK_CACHE_SIZE参数设置
最近在尝试优化一个包含blob字段表的查询,考虑使用非标准块缓存。但是,在尝试设置DB_32K_CACHE_SIZE参数时,遭遇报错(报错内容:ORA-00382: 32768 不是有效的块大小, 有效范围为 [..])。于是,到官方文档查了一下,才明白这个参数的设置由于和底层数据块相关,与操作系统是紧密相连的。在Windows操作系统下,DB_32K_CACHE_SIZE参数时不可用的,但是,它支持DB_16K_CACHE_SIZE。
这里给出参数的官方文档说明以及具体的操作过程,仅供参考。
官方文档说明DB_nK_CACHE_SIZE
属性 |
描述 |
参数类型 |
整型数 |
语法 |
DB_[2 | 4 | 8 | 16 | 32]K_CACHE_SIZE =integer[K | M | G] |
默认值 |
0 (默认情况下,不设置非标准块大小缓存) |
修改 |
ALTER SYSTEM |
取值范围 |
最小值: 0 (如果值大于0,会自动修改为内存颗粒大小*处理器个数,或者4MB*CPU个数,取二者较大值) 最大值: 取决于操作系统 |
基本参数 |
否 |
DB_nK_CACHE_SIZE (其中 n = 2, 4, 8, 16, 32) 指定了nK缓存区的大小。你可以设置除DB_BLOCK_SIZE之外的其他数值。例如,如果DB_BLOCK_SIZE为4096,那么你设置DB_4K_CACHE_SIZE就是非法的(因为4K的缓存区大小已经被DB_CACHE_SIZE参数设置过了)。
如果数据库中存在nK块大小的在线表空间,那么不能设置该参数为0。
操作系统会限制特定的块大小。例如,如果操作系统最大块尺寸小于32KB,那么你不能设置DB_32K_CACHE_SIZE参数。同样,如果最小块尺寸大于2KB,那么你也不能设置DB_2K_CACHE_SIZE参数。
操作环境
我在Oracle10g+Windows Server 2008 Standard R2环境下进行以下操作。
- SQL>
评论暂时关闭