テーブルのデータ ブロック サイズの変更は、パフォーマンスを改善する目的でのみ行ないます。大きい表のデータ ブロックのリパックは、時間のかかる処理です。そのため、IMMEDIATEオプションを大きいテーブルに指定すると、ALTER TABLEリクエストの実行に必要な時間が大幅に増えます。
システムのフィールド アップグレードをしても、ブロック分割が発生しない限りデータ ブロック サイズは64 KBから127.5 KBに変更されることはありません。127.5 KBのブロック サイズに伴うパフォーマンス向上の利点をすぐに享受するためには、データ ブロック サイズの変更を直接的に強制施行する必要があります。
データ ブロック サイズを63.5 KBから127.5 KBにアップグレードするには、すべてのデータベースのすべてのテーブルに対して、次のALTER TABLEリクエストのいずれかを実行します。
ALTER TABLE database_name.table_name, DEFAULT DATABLOCKSIZE IMMEDIATE; ALTER TABLE database_name.table_name, DATABLOCKSIZE = 127.5 KBYTES IMMEDIATE;
IMMEDIATEキーワードを指定しないと、DATABLOCKSIZEの定義は127.5 KBに設定されますが、新しく定義されたテーブルに行が挿入されるまでサイズは大きくなりません。
IMMEDIATEオプション付きのリクエストを処理するには余分の時間を要するため、データ ブロック サイズの変換はピーク時以外に行なうよう計画する必要があります。
また、IMMEDIATEオプションを指定したALTER TABLEリクエストがアボートした場合、またはユーザーによってアボートされた場合には、リパックが不完全なまま終了する可能性があります。つまり、元のサイズのままのデータ ブロックと、新たに指定されたサイズのデータ ブロックとが混在することになります。
SHOW TABLEリクエストへの応答として返されたDATABLOCKSIZEの値は、最後に入力されたALTER TABLEまたはCREATE TABLEリクエストに指定された値になります。
DATABLOCKSIZE指定がALTER TABLEリクエストで指定されていない場合には、データ ブロック サイズは変更されず、データ ブロックはリパックされません。