Multiple Block Size Support

 

 

Oracle 9i数据库中支持同一个数据库使用不同大小的Oracle 数据块,可以在表空间一级定义数据块的大小,例如:

CREATE TABLESPACE TBS1 ... BLOCKSIZE 16K;

CREATE TABLESPACE TBS2 ... BLOCKSIZE 8192;

其中,BLOCKSIZE可以取2K4K8K16K,如果操作系统支持,甚至可以取32K。可以通过DBA_TABLESPACES视图中的BLOCK_SIZE列值查看表空间的块尺寸。

 

Oracle 9i 以前的版本一样,在创建数据库的时候还是需要在参数文件中指定DB_BLOCK_SIZE参数(缺省数据库数据块尺寸,也成为标准块尺寸,standard block size)的值。这个参数的值将作为创建表空间时的缺省块尺寸(如果不指定新表空间的块尺寸的话),并且DB_BLOCK_SIZE参数的值仍然是在创建数据库的时候指定以后,除非重建数据库,否则不能更改。

 

需要注意的是:

·          当使用分区时,一个分区表的所有分区必须在相同的BLOCKSIZE的表空间中。

·          索引和相应的表可以放在不同的BLOCKSIZE的表空间中。

·          系统表空间的块尺寸只能是DB_BLOCK_SIZE参数的值

 

Oracle 9i中参数DB_CACHE_SIZE 替代了以前的 DB_BLOCK_BUFFERS参数,并使用字节为单位表示高速缓冲区的大小(而不是以块为单位)。

当我们在一个数据库中使用多块设置的时候,必须指定DB_CACHE_SIZE参数,并且为不同块设置的表空间设置DB_nK_CACHE_SIZE参数(至少指定一个DB_nK_CACHE_SIZE参数),其中,n可以是2481632,即:

DB_2K_CACHE_SIZE 的缓冲区是为了存取2k数据块尺寸的表空间对象而指定的高速缓存;

DB_4K_CACHE_SIZE的缓冲区是为了存取4k数据块尺寸的表空间对象而指定的高速缓存;

DB_8K_CACHE_SIZE的缓冲区是为了存取8k数据块尺寸的表空间对象而指定的高速缓存;

DB_16K_CACHE_SIZE的缓冲区是为了存取16k数据块尺寸的表空间对象而指定的高速缓存;

DB_32K_CACHE_SIZE的缓冲区是为了存取32k数据块尺寸的表空间对象而指定的高速缓存;

 

注意,n不能指定为和缺省数据块尺寸大小相同的数值,例如,如果DB_BLOCK_SIZE = 8192(8KB),那么就不能设置DB_8K_CACHE_SIZE参数。

 

例如:

     MAX_SGA_SIZE = 700M

     SHARE_POOL_SIZE = 80M

     DB_BLOCK_SIZE = 8192

     DB_CACHE_SIZE = 290M

     DB_2K_CACHE_SIZE = 4M

     DB_16K_CACHE_SIZE = 16M

 

上面的设置说明了,在SGA中,SGA动态增长最多可以达到700M,其中实例启动时SHARE POOL的大小为80M,数据库标准块尺寸(缺省数据块大小)是8KB,如果用标准数据块(即,8KB)的对象时,将使用290M的高速缓存(DATA BUFFER),如果使用2K数据块尺寸的表空间内的对象时,可以使用4M的高速缓存,如果使用16K数据块尺寸的表空间内的对象时,可以使用16M的高速缓存。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值