DB2 では産業界で最も広範囲の Explain 機能を提供します。 これには、Explain 済みの SQL ステートメントについて選択したアクセス・プランに関する詳細最適化プログラム情報が含まれています。 Explain 情報を獲得しアクセスするのに必要な柔軟性を提供するため、 いくつかの方法が提供されています。
アクセス・プランを徹底的に分析するために使用できる詳細最適化プログラム情報は、 実際のアクセス・プランとは別の Explain 表に保持されます。 Explain 表から情報を入手するには、次の 3 つの方法があります。
Explain 表はサポートされるすべてのプラットフォームでアクセス可能であり、 表には静的 SQL と動的 SQL の両方に関する情報が含まれています。 SQL ステートメントを使用すると、簡単な操作で出力したり、 別の照会と比較したり、 または同じ照会を時間外で比較したりできる Explain 表にアクセスすることができます。 事前定義された書式で表示された Explain 表から情報を得る場合は、 db2exfmt ツールを使用することができます。 このツールの詳細については、付録 I, db2exfmt - Explain 表フォーマット・ツールを参照してください。 代替方法としては、 表にアクセスするための自分自身のステートメントを作成する必要があります。
注: | このツール (および、db2batch、dynexpln、db2vexp、db2_all といったツール) は、 sqllib ディレクトリーの misc サブディレクトリー内にあります。 このツールがこのパスから移動されている場合には、 上述したコマンド行入力は作動しない場合があります。 |
Visual Explain を使用すると、 グラフィック・インターフェースを介して、 アクセス・プランの分析や Explain 表からの最適化プログラム情報を分析することができます。 静的 SQL と動的 SQL はどちらもこのツールを用いて分析することができます。 Visual Explain は一般にコントロール・センター内から呼び出されます。 コントロール・センターは、 コマンド行に db2cc と入力すると使用できます。 また、Visual Explain は、 コマンド行に db2vexp コマンドを入力して、 1 つの SQL ステートメントごとに直接呼び出すこともできます。 一部のプラットフォームでは、Visual Explain は、 DB2 ユニバーサル・データベース・フォルダー内からフォルダーを使用して呼び出すことができます。 Visual Explain はサポートされるプラットフォームすべてで使用できるわけではありません。 Visual Explain がサポートされているかどうかを調べるには、 概説およびインストール を参照してください。 Visual Explain では、 別のプラットフォームで収集または取得したスナップショットを見ることができます。 たとえば、Windows NT クライアントでは、 DB2 (HP-UX サーバー版) で生成されたスナップショットをグラフ化することができます。 これが可能なのは、両方のプラットフォームがバージョン 5 レベル以降の場合に限られます。 Visual Explain からの出力は、簡単に操作して詳しい分析を行えるものではなく、 他のアプリケーションでアクセスできる情報でもありません。 db2vexp コマンドの詳細については、 コマンド行で db2vexp -h と入力するか、 コマンド解説書 を参照してください。 Visual Explain の詳細については、db2cc を入力して、 コントロール・センターのオンライン・ヘルプを参照してください。
静的 SQL ステートメントのアクセス・プランに関する情報はパッケージの一部として生成され、 システム・カタログに保管されます。 1 つまたは複数のパッケージで利用できるアクセス・プラン情報を見るには、 コマンド行から db2expln ツールを使用できます。 db2expln は、 選択したアクセス・プランを実際に具体化したものを示します。 最適化プログラム情報については示しません。
dynexpln ツールは内部で db2expln を使用しますが、 パラメーター・マーカーが入っていない動的 SQL ステートメントに対して素早い方法で Explain を実行します。 dynexpln 内部からの db2expln の使用は、 入力 SQL ステートメントを疑似パッケージ内の静的ステートメントに変換することによって行われます。 これが実行されても、情報は必ずしも完全に正確であるとは限りません。 完全に正確な情報が必要な場合には、 SQL Explain 機能の使用で説明されている Explain 機能を使用するようにしてください。
db2expln ツールは、生成された実際のアクセス・プランを調べることにより、 実行時にどのような操作が行われるのかに関する比較的コンパクトで英語式の概要を提供します (コードの生成方法については、 注を参照してください)。 db2expln の使用と出力の解釈に関する付加的な情報については、 付録 H, SQL EXPLAIN ツールを参照してください。
表 51 では、
DB2 Explain 機能と共に使用できる他のツールとそれらの個々の特性について要約します。
この表を使用して、使用中の環境とニーズに最も適したツールを選択してください。
希望する特性 | Visual Explain | db2vexp | Explain 表 | db2exfmt | db2expln | dynexpln | ||
---|---|---|---|---|---|---|---|---|
GUI インターフェース | 可 | 可 | ||||||
テキスト出力 | 可 | 可 | 可 | |||||
「簡易」静的 SQL 分析 | 可 | |||||||
サポートされる静的 SQL | 可 | 可 | 可 | 可 | ||||
サポートされる動的 SQL | 可 | 可 | 可 | 可 | 可* | |||
サポートされる CLI アプリケーション | 可 | 可 | 可 | |||||
DRDA アプリケーション・リクエスターで使用可能 | 可 | |||||||
詳細最適化プログラム情報 | 可 | 可 | 可 | 可 | ||||
複数ステートメントの分析に適合 | 可 | 可 | 可 | 可 | ||||
アプリケーション内部からアクセス可能な情報 | 可 | |||||||
|