Explain 情報の収集および分析用のツール

Db2® データベース・サーバーには、SQL または XQuery ステートメント用にオプティマイザーが選択するアクセス・プランに関する詳細情報を提供する包括的な Explain 機能があります。

Explain データが保管される表は、 サポートされるすべてのプラットフォームでアクセス可能であり、 静的と動的の両方の SQL および XQuery ステートメントに関する情報が含まれています。 Explain 情報のキャプチャー、表示、および分析を柔軟に行うために必要ないくつかのツールを利用できます。

アクセス・プランを徹底的に分析するために使用できる照会オプティマイザーの詳細情報は、 実際のアクセス・プランとは別の Explain 表に保管されます。 Explain 表から情報を入手するための以下の方法のうち、1 つ以上を使用してください。
  • db2exfmt ツールを使用して、フォーマット設定された出力で Explain 情報を表示します。
  • Explain 表に対する独自の照会を作成します。 独自の照会を作成することにより、出力の操作、さまざまな照会の間での比較、または同じ照会を時間を変えて実行した場合の比較を容易に行えます。
  • EXPLAIN_FORMAT ストアード・プロシージャー を使用して、Explain データをフォーマット設定し、EXPLAIN_STATEMENT 表の列に保管します。

静的 SQL または XQuery ステートメントの 1 つ以上のパッケージで利用できるアクセス・プラン情報を見るには、db2expln ツールを使用します。 このユーティリティーは、選択したアクセス・プランを実際に具体化したものを示します。オプティマイザー情報については示しません。 db2expln ツールは、生成されたアクセス・プランを調べることにより、実行時に行われる操作に関する比較的コンパクトな説明文で概要を示します。

コマンド・ライン Explain ツールは、sqllib ディレクトリーの misc サブディレクトリーにあります。

次の表では、Db2 Explain 機能で使用できるさまざまなツールについて要約します。 この表を使用して、使用中の環境とニーズに最も適したツールを選択してください。
表 1. Explain 機能ツール
希望する特性 Explain 表 db2expln db2exfmt EXPLAIN_FORMAT プロシージャー
テキスト出力   はい はい はい
簡易的な 静的 SQL および XQuery 分析   はい   はい
静的 SQL および XQuery のサポート はい はい はい はい
動的 SQL および XQuery のサポート はい はい はい はい
CLI アプリケーションのサポート はい   はい はい
DRDA アプリケーション・リクエスターに使用可能 はい     はい
詳細オプティマイザー情報 はい   はい はい
複数ステートメントの分析に適合 はい はい はい はい
アプリケーション内部から情報にアクセス可能 はい     はい

これらのツールに加えて、 IBM® Data Studio バージョン 3.1 以降を使用して、SQL または XPATH ステートメントの現行アクセス・プランのダイアグラムを生成できます。 詳しくは、 Visual Explain を使用したアクセス・プランのダイアグラミングを参照してください。

Explain 時点で有効なカタログ統計の表示

Explain 機能を使用すると、ステートメントの Explain 時に有効であった統計がキャプチャーされます。 こうした統計はシステム・カタログに格納されているものとは異なる可能性があります。特に、リアルタイム統計収集が有効になっている場合には、そう言えます。 Explain 表にデータが追加されているものの Explain スナップショットが作成されていない場合には、EXPLAIN_OBJECT 表に記録される統計は一部に限定されます。

Explain されているステートメントに関連したすべてのカタログ統計をキャプチャーするには、Explain 表にデータが追加されると同時に Explain スナップショットを作成し、その後、SYSPROC.EXPLAIN_FORMAT_STATS スカラー関数を使用してスナップショットのカタログ統計をフォーマット設定します。

db2exfmt ツールを使用して Explain 情報をフォーマット設定する場合、Explain スナップショットが収集されているのであれば、自動的に SYSPROC.EXPLAIN_FORMAT_STATS 関数が使用されてカタログ統計が表示されます。