CURRENT EXPLAIN SNAPSHOT 特殊レジスター

CURRENT EXPLAIN SNAPSHOT 特殊レジスターには、 Explain スナップショット機能の動作を制御するための CHAR(8) の値が入れられます。 この機能は、アクセス・プラン情報、演算子コスト、 バインド実行時の統計などに関する情報を圧縮して生成するものです。

次に挙げるステートメントだけがこのレジスターの値として認められます。 すなわち、CALL、コンパウンド SQL (動的)、DELETE、INSERT、MERGE、REFRESH、SELECT、SELECT INTO、SET INTEGRITY、UPDATE、VALUES、および VALUES INTO です。 使用できる値は、YES、EXPLAIN、NO、および REOPT です。 (静的 SQL の場合、EXPLSNAP BIND オプションが同じ制御機能として働きます。 PREP および BIND コマンドの場合、EXPLSNAP オプション値は YES、NO、および ALL です。)

YES
Explain スナップショット機能を使用可能にし、 動的 SQL ステートメントがコンパイルされるときの、 そのステートメントの内部表記のスナップショットを取り出します。
EXPLAIN
Explain スナップショット機能を使用可能にします。ただし、動的ステートメントは実行されません。
NO
Explain スナップショット機能を使用不可にします。
REOPT
Explain 機能が使用可能になり、 動的 (つまり増分バインド) SQL ステートメントに関する Explain 情報がキャプチャーされることになります。ただし、入力変数 (ホスト変数、特殊レジスター、グローバル変数、またはパラメーター・マーカー) の実際の値を使ってこのステートメントが再最適化された場合に限ります。

初期値は NO です。 値は、SET CURRENT EXPLAIN SNAPSHOT ステートメントを呼び出すことによって変更できます。

CURRENT EXPLAIN SNAPSHOT と CURRENT EXPLAIN MODE 特殊レジスター値は、 Explain 機能が呼び出されている場合に相互に作用します。 CURRENT EXPLAIN SNAPSHOT 特殊レジスター値の方は、 EXPLSNAP BIND オプションとも相互に作用します。

例: 以下の例は、ホスト変数 EXPL_SNAP (char(8)) に、 CURRENT EXPLAIN SNAPSHOT 特殊レジスターの現在の値を設定するものです。
   VALUES CURRENT EXPLAIN SNAPSHOT
     INTO :EXPL_SNAP