SQL 解説書

SET CURRENT EXPLAIN SNAPSHOT

SET CURRENT EXPLAIN SNAPSHOT ステートメントは、 CURRENT EXPLAIN SNAPSHOT 特殊レジスターの値を変更します。 このステートメントは、トランザクションの制御下にはありません。

呼び出し

このステートメントは、アプリケーション・プログラムに組み込むか、 あるいは対話式に発行することができます。 このステートメントは、動的に準備可能な実行可能ステートメントです。

許可

このステートメントの実行には、特に権限は必要ありません。

構文

                                    .-=-.
>>-SET--CURRENT--EXPLAIN--SNAPSHOT--+---+----+-NO------------+-><
                                             +-YES-----------+
                                             +-EXPLAIN-------+
                                             '-host-variable-'
 

説明

NO
Explain スナップショット機能を使用不可にします。 スナップショットは取られません。 NO は、特殊レジスターの初期値です。

YES
Explain スナップショット機能を使用可能にし、 適格な動的 SQL ステートメントに対して内部表記のスナップショットを作成します。 この情報は、EXPLAIN_STATEMENT 表の SNAPSHOT 列 (付録 K, Explain 表と定義 を参照) に挿入されます。

EXPLAIN SNAPSHOT 機能は、Visual Explain での使用を意図しています。

EXPLAIN
Explain スナップショット機能を使用可能にし、 準備済みの適格な動的 SQL ステートメントごとに内部表記のスナップショットを作成します。 ただし、動的ステートメントは実行されません。

host-variable
host-variable (ホスト変数) のデータ・タイプは CHAR または VARCHAR でなければならず、 その内容の長さは 8 を超えてはなりません。 それより長いフィールドを指定すると、エラーになります (SQLSTATE 42815)。 このレジスターの値は、NO、YES、または EXPLAIN でなければなりません。 実際に指定する値が、指定した置換値より大きい場合は、 入力の右側にブランクを入れる必要があります。 先行ブランクは使用できません (SQLSTATE 42815)。 すべての入力値は、大文字小文字を区別するものとして処理されます。 host-variable が標識変数を伴っている場合、 その標識変数の値は NULL 値以外でなければなりません (SQLSTATE 42815)。

静的 SQL ステートメントの Explain スナップショットは、 PREP または BIND コマンドの EXPLSNAP オプションの使用によって取ることができます。 EXPLSNAP オプションの ALL の値を指定し、 CURRENT EXPLAIN SNAPSHOT のレジスター値が NO の場合には、 実行時に動的 SQL ステートメントの Explain スナップショットが取られます。 CURRENT EXPLAIN SNAPSHOT レジスターの値が NO 以外の場合、 EXPLSNAP オプションは無視されます。 EXPLSNAP オプションと CURRENT EXPLAIN SNAPSHOT 特殊レジスターとの相互作用については、 表 144 を参照してください。

Explain スナップショット機能が活動化される場合、 現行の許可 ID には、Explain 表に対する INSERT 特権が必要です。 この特権がないと、エラー (SQLSTATE 42501) になります。

詳細については、管理の手引き を参照してください。

例 1: 以下のステートメントは、 CURRENT EXPLAIN SNAPSHOT 特殊レジスターを設定して、 以降の適格な動的 SQL ステートメントの Explain スナップショットを取り、 そのステートメントを実行します。

   SET CURRENT EXPLAIN SNAPSHOT = YES

例 2: 以下の例では、 SNAP という名前のホスト変数に CURRENT EXPLAIN SNAPSHOT 特殊レジスターの現行値を入れます。

   EXEC SQL VALUES (CURRENT EXPLAIN SNAPSHOT) INTO :SNAP;


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]