SQL 解説書

SET CURRENT EXPLAIN MODE

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

呼び出し

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

許可

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

構文

                             .-=-.
>>-SET CURRENT EXPLAIN MODE--+---+----+-NO----------------+----><
                                      +-YES---------------+
                                      +-EXPLAIN-----------+
                                      +-RECOMMEND INDEXES-+
                                      +-EVALUATE INDEXES--+
                                      '-host-variable-----'
 

説明

NO
Explain 機能を使用不可にします。 Explain 情報は取り込まれません。 NO は、特殊レジスターの初期値です。

YES
Explain 機能を使用可能にし、 適格な動的 SQL ステートメントについての Explain 情報を Explain 表に挿入します。 すべての動的 SQL ステートメントが、通常どおりにコンパイルおよび実行されます。

EXPLAIN
Explain 機能を使用可能にし、 準備される適切な動的 SQL ステートメントについての Explain 情報を取り込みます。 ただし、動的ステートメントは実行されません。

RECOMMEND INDEXES
SQL コンパイラーが索引を推奨できるようにします。 この Explain モードで実行される照会はすべて、 推奨された索引を ADVISE_INDEX 表に埋め込みます。 さらに、推奨された索引を使用する方法を示すため、 Explain 表に Explain 情報が取り込まれますが、 そのステートメントのコンパイルや実行は行われません。

EVALUATE INDEXES
SQL コンパイラーが索引を評価できるようにします。 評価される索引は ADVISE_INDEX 表から読み取られ、 EVALUATE = Y というマークが付けられる必要があります。 最適化プログラムは、カタログの値に基づく仮想索引を生成します。 この Explain モードで実行される照会はすべて、 仮想索引に基づいて見積もられた統計を使用してコンパイルされ、最適化されます。 ステートメントは実行されません。

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

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

RECOMMEND INDEXES と EVALUATE INDEXES は特殊モードで、 それらを設定するために使えるのは SET CURRENT EXPLAIN MODE コマンドだけです。 これらのモードは PREP または BIND オプションを使って設定することはできません。 また、SET CURRENT SNAPSHOT コマンドを使用しても動作しません。

Explain 機能が活動化される場合、 現行の許可 ID に Explain 表に対する INSERT 特権が必要です。 この特権がない場合には、エラー (SQLSTATE 42501) が発生します。

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

例 1: 次のステートメントでは、 以降の適格な動的 SQL ステートメントの Explain 情報を取り込み、 そのステートメントが実行されないように、 CURRENT EXPLAIN MODE 特殊レジスターを設定しています。

   SET CURRENT EXPLAIN MODE = EXPLAIN


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