非標準のブロックサイズの表領域

 デフォルトと異なるサイズの表領域の作り方を紹介します。なぜそんなことをするのか。それはテーブルによって、表領域によって最適なブロックサイズが異なるからです。
 
 一度の読み取りデータ量が少ないテーブルや表領域についてはブロックサイズが小さい方が読み取り効率が良いです。しかし一度の読み取りデータ量が多いテーブルや表領域についてはブロックサイズが大きい方が読み取り効率が良いです。

 こういった特性を理解し、マルチにブロックサイズを設定した方がよい場合に下記の手順で設定してください。

1.マルチブロックサイズに対応するためのバッファキャッシュの設定

【例】デフォルト8KBで、16KBの表領域を作りたい場合
 デフォルト以外のサイズのブロックサイズのデータはそのままではバッファキャッシュにのせることができません。
 
 予め、バッファキャッシュ内にデフォルト以外のデータをのせる領域をバッファキャッシュ内に設定する必要があります。
 ALTER SYSTEM SET DB_16K_CACHE_SIZE = 10G;

2.表領域の作成

 ここでは新規表領域の作成をしています。既存領域内のオブジェクトを新規表領域内に移動させることでブロックサイズを変更することができます。
 create tableapace tsp1 datafile ‘/oracle/oradata/xxDB/data/tsp1.dbf’ size 512k blocksize 16k;