SET CURRENT MDC ROLLOUT MODE ステートメント
SET CURRENT MDC ROLLOUT MODE ステートメントは、CURRENT MDC ROLLOUT MODE 特殊レジスターに値を割り当てます。 この値は、マルチディメンション・クラスタリング (MDC) 表に適格である DELETE ステートメントに対して実行されるロールアウト・クリーンアップのタイプを指定します。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込んだり、動的 SQL ステートメントを使用して発行したりすることができます。 このステートメントは、動的に作成できる実行可能ステートメントです。
許可
必要ありません。
構文
説明
- NONE
- 削除操作中に MDC ロールアウト最適化は使用されないことを指定します。 DELETE ステートメントは、ロールアウトできない DELETE ステートメントと同じようにして処理されます。
- IMMEDIATE
- DELETE ステートメントが適格である場合に MDC ロールアウト最適化が使用されることを指定します。 表に RID 索引がある場合、削除処理中にそれらの索引は即時に更新されます。 削除されたブロックは、トランザクションがコミットされた後に再利用できるようになります。
- DEFERRED
- DELETE ステートメントが適格である場合に MDC ロールアウト最適化が使用されることを指定します。 表に RID 索引がある場合、索引の更新はトランザクションがコミットされるまで据え置かれます。 このオプションを使用すると、削除処理は速くなり使用されるログ・スペースも少なくなりますが、削除されたブロックは索引の更新が完了するまで再利用できません。
- host-variable
- タイプが VARCHAR の変数です。 host-variable の長さは 17 バイト以下でなければなりません (SQLSTATE 42815)。ホスト変数の値は、「NONE」、「IMMEDIATE」、または「DEFERRED」(大/小文字を区別しない) のいずれかの、左寄せされたストリングでなければなりません。 host-variable が標識変数を伴っている場合、 その標識変数の値は NULL 値以外でなければなりません (SQLSTATE 42815)。
注
- ロールアウト処理に適格である後続の DELETE ステートメントは、CURRENT MDC ROLLOUT MODE 特殊レジスターの設定に従います。現在実行中のセクションは、この特殊レジスターを変更しても影響を受けません。
- SET CURRENT MDC ROLLOUT MODE ステートメントが実行される作業単位がロールバックされても、このステートメントの実行結果はロールバックされません。
- SET CURRENT MDC ROLLOUT MODE ステートメントを実行すると、MDC 表のロールアウトの動作が変更されます。
MDC 表のロールアウトの動作は、以下のいずれかの状態になると、レジストリー変数 Db2_MDC_ROLLOUT によって設定された構成に戻ります。
- データベースに対する接続/セッションが終了した。
- CONNECT RESET が入力された。
- SET CURRENT MDC ROLLOUT MODE NONE が入力された。
- パーティション RID 索引を持つデータ・パーティション MDC 表では、DEFERRED モードはサポートされません。
NONE および IMMEDIATE モードのみがサポートされます。Db2_MDC_ROLLOUT レジストリー変数が DEFER に設定されている場合、または Db2_MDC_ROLLOUT 設定をオーバーライドするために CURRENT MDC ROLLOUT MODE 特殊レジスターが DEFERRED に設定されている場合には、クリーンアップ・ロールアウト・タイプは IMMEDIATE になります。
MDC 表に非パーティション RID 索引のみが存在する場合は、据え置き索引クリーンアップ・ロールアウトがサポートされます。
例
ロールアウト処理に適格である次の DELETE ステートメントに対して据え置きクリーンアップ動作を指定します。
SET CURRENT MDC ROLLOUT MODE IMMEDIATE