參數(shù)db_block_size;
這個參數(shù)只能設置成底層操作系統(tǒng)物理塊大小的整數(shù)倍,最好是2的n次方倍。
如WINDOWS下4KB,8KB,16KB
且該參數(shù)需要在建庫的時候指定,一旦指定不能更改。
雖然在ORACLE9I以上可以指定表空間的數(shù)據(jù)庫大小,允許同時使用包括非默認大小在內的數(shù)據(jù)庫塊大小。不過需要設置指定大小數(shù)據(jù)塊的buffer_cache.
小的塊:
小的塊降低塊競爭,因為每個塊中的行較少.
小的塊對于小的行有益.
小的塊對于隨意的訪問較好.如果一個塊不太可能在讀入內存后被修改,那么塊的大小越小使用buffer cache越有效率。當內存資源很珍貴時尤為重要,因為數(shù)據(jù)庫的buffer cache是被限制大小的。
劣勢:
小塊的管理消費相對大.
因為行的大小你可能只在塊中存儲很小數(shù)目的行,這可能導致額外的I/O。
小塊可能導致更多的索引塊被讀取
大的塊
好處:
更少的管理消費和更多存儲數(shù)據(jù)的空間.
大塊對于有順序的讀取較好. 譬如說全表掃描
大塊對很大的行較好
大塊改進了索引讀取的性能.大的塊可以在一個塊中容納更多的索引條目,降低了大的索引級的數(shù)量.越少的index level意味著在遍歷索引分支的時候越少的I/O。
劣勢:
大塊不適合在OLTP中用作索引塊,因為它們增加了在索引葉塊上的塊競爭。
如果你是隨意的訪問小的行并有大的塊,buffer cache就被浪費了。例如,8 KB的block size 和50 byte row size,你浪費了7,950