oracle block_size 為非標準塊的時候

perfychi發表於2013-04-17
當建立的資料檔案(確切的說是表空間)可以制定表空間的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的時候是不存在的,這點要主要。




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27042095/viewspace-758715/,如需轉載,請註明出處,否則將追究法律責任。

相關文章