insert が実行されてからセグメントを割り当てする
Oracle11g リリース2(以下、R2)で、遅延セグメントという新機能が追加された。
従来、テーブルを作成するときにデータを insert していなくても、セグメントが
割り当てられていたが、insert が実行されるまで遅延可能というもの。
これまでの動作
すぐにデータが insert されるなら問題はないが、データが存在しない
期間があると、その時点では無駄なセグメント利用と言える。
作成されるオブジェクト数が多いなら尚更。
テーブルやインデックスが対象
遅延セグメントを使用することで、insert が実行されるまで
遅延させることが出来るようになった。
※ パーティションテーブルは対象外。
初期化パラメータ deferred_segment_creation
この動作は 11gR2 からデフォルトだが、遅延セグメントを使用せず
従来通りとしたい場合は、初期化パラメータ deferred_segment_creation に
false を設定すればよい。
11gR1 環境では下記の通り、パラメータの結果が返されない。
SQL> show parameter deferred_segment_creation
deferred_segment_creation 自体も R2 新設の初期化パラメータだ。