SQL> select * from v$version where rownum=1;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
SQL> show parameter cache_size
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
client_result_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
SQL>
SQL> show parameter db_block
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
Note:
(1)32-bit operating systems support a maximum DB_BLOCK_SIZE value of16384(16k)--32位系统,db_block_size最大16k
(2)64-bit operating systems support a maximum DB_BLOCK_SIZE value of32768(32k)--64位系统,db_block_size最大32k
SQL> alter system set db_32k_cache_size=1m scope=spfile;
alter system set db_32k_cache_size=1m scope=spfile
*
ERROR at line 1:
ORA-32017: failure in updating SPFILE
ORA-00382: 32768 not a valid block size, valid range [..]
SQL> alter system set db_16k_cache_size=1m scope=both;
System altered.
SQL> show parameter cache_size
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
client_result_cache_size big integer 0
db_16k_cache_size big integer 4M
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
-- 这个最小的默认值,上面的官网说明有解释:
--values greater thanzero are automatically modified to be either the granule size * number ofprocessor groups, or 4 MB * number of CPUs, whichever is greater
--指定了16kcache,我们就可以创建block 为16k的表空间了
SQL> create tablespace tt16k
datafile '/u01/oradata/db11/tt16k.dbf' size 50m
autoextend on next 10m maxsize 200m blocksize 16k;
Tablespace created.
--为了验证不指定cache报的错误,我们创建一个4k的tablespace
SQL> create tablespace tt4k
2 datafile '/u01/oradata/db11/tt4k.dbf' size 50m
3 autoextend on next 10m maxsize 200m blocksize 4k;
create tablespace tt4k
*
ERROR at line 1:
ORA-29339: tablespace block size 4096 does not match configured block sizes
SQL> create table tt16 tablespace tt16k as select * from dba_objects;
Table created.
SQL> select segment_name,blocks from dba_segments where segment_name='TT16';
SEGMENT_NAME BLOCKS
--------------------------------------------------------------------------------- ----------
TT16 576