【ORACLE】非標準ブロックサイズの表領域を作る方法


ここではORACLEデータベースの非標準のブロックサイズの作り方を紹介しています。

DISK読取回数の多いSQLの確認方法は↓で紹介していますので参考にしてください。
>>【SQL】DISK読取回数の多いSQL(I/O負荷の高い)の確認する方法

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

デフォルトと異なるサイズの表領域の作り方を紹介します。なぜそんなことをするのか。それはテーブルによって、表領域によって最適なブロックサイズが異なるからです。

一度の読み取りデータ量が少ないテーブルや表領域についてはブロックサイズが小さい方が読み取り効率が良いです。

しかし一度の読み取りデータ量が多いテーブルや表領域についてはブロックサイズが大きい方が読み取り効率が良いです。

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

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;

最後に

最後までお読みいただきありがとうございます。

SQLのチューニング方法は↓で紹介していますので参考にしてください。
>>SELECT文のSQLチューニング方法まとめ