当创建的数据文件(确切的说是表空间)可以制定表空间的blocksize为非标准块 , 此时必须提前设置针对改数据块缓存的参数, 比如要建立16k数据表空间,需要提前设定参数db_16k_cache_size为非0值 ;
如果16k是标准块的话, db_16k_cache_size可以为0 , db_cache_size可以为0(让SGA动态分配db_cache_size)
下面看一下非标准块的情形:
22:22:21 SQL[ SYS ] >show parameter db_block_size
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_block_size integer 8192
可见标准块为8K
建立16k的表空间:
(1)首先设定db_16k_cache_size为非0值:
22:25:09 SQL[ SYS ] >alter system set db_16k_cache_size=100M
(2) 建立表空间同时设定block_size 为16k
create table test add datafile '/u01/test01.dbf' block_size 16k size 2G;
* block_size 在size 之前,顺序不要搞错
这样建立的test表空间,就是16k的表空间,以后再添加数据文件时候,数据文件就自动使用表空间的16k的块大小。
block_size参数在create tablespace add datafile 的时候存在,在 alter tablespace add datafile的时候是不存在的,这点要主要。
如果16k是标准块的话, db_16k_cache_size可以为0 , db_cache_size可以为0(让SGA动态分配db_cache_size)
下面看一下非标准块的情形:
22:22:21 SQL[ SYS ] >show parameter db_block_size
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_block_size integer 8192
可见标准块为8K
建立16k的表空间:
(1)首先设定db_16k_cache_size为非0值:
22:25:09 SQL[ SYS ] >alter system set db_16k_cache_size=100M
(2) 建立表空间同时设定block_size 为16k
create table test add datafile '/u01/test01.dbf' block_size 16k size 2G;
* block_size 在size 之前,顺序不要搞错
这样建立的test表空间,就是16k的表空间,以后再添加数据文件时候,数据文件就自动使用表空间的16k的块大小。
block_size参数在create tablespace add datafile 的时候存在,在 alter tablespace add datafile的时候是不存在的,这点要主要。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27042095/viewspace-758715/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/27042095/viewspace-758715/