管理の手引き


SQL Explain 機能の使用

Explain 情報を獲得する手段として、次のものを使用します。

  1. EXPLAIN および EXPLSNAP BIND/PREP オプション
  2. CURRENT EXPLAIN MODE および CURRENT EXPLAIN SNAPSHOT 特殊レジスター
  3. EXPLAIN SQL ステートメント
  4. db2vexp ツール (Visual Explain を直接呼び出して情報を表示する)

Explain データを収集し使用する理由には、 次の 4 つが挙げられます。

  1. 照会を満たすためにデータベース・マネージャーが実行しなければならないステップ (アクセス・プラン) を理解する。 データ・アクセスの概念と最適化は、 Explain 出力を理解する場合に参照する必要がある情報を提供しています。
  2. パフォーマンス調整の優先事項を評価するのに役に立つ。 照会のパフォーマンスを向上させるのに役立つ、多数のアクションがあります。 これらの可能なアクションの大部分は、次の項目のサブトピックに記載されています。

    これらの領域のいずれかで変更を行ってから、SQL Explain 機能を使用して、 変更によって選択したアクセス・プランに与える影響があるならば、 それを判別することができます。 たとえば、照会最適化に対する索引付けの影響に記載されている推奨事項に基づいて索引を追加した場合、 Explain データを参考にして、 実際には索引が期待したとおりに使用されているのかどうかを判別することができます。

    Explain 出力は、選択したアクセス・プランとその相対コストを判別できるようにする情報を提供しますが、 照会のパフォーマンスの向上を正確に測定する唯一の方法は、 第 31 章, ベンチマーク・テストに記載されたベンチマーク・テスト技法を使用することです。

  3. 照会パフォーマンスが変化した理由を理解するには、 影響を分析するために、変更の前と後の Explain 情報が必要です。 したがって、SQL ステートメントをデータベースにコンパイルする際に、 次のことを行わなければなりません。

    上記の情報では、 今後の分析の参照点として使用できるように、 ピクチャーを提供します。 動的 SQL ステートメントの場合は、 アプリケーションを最初に実行するときに、この情報を収集することもできます。 静的 SQL ステートメントの場合は、バインド時にこの情報を収集することもできます。

    パフォーマンスの変更理由を分析する場合は、 データを、 分析を開始しているときに照会と環境について収集した情報 ( データ) と比較することができます。

    簡単な例として、分析によって、 索引がアクセス・パスの一部として使用されていないことが示されたとします。 カタログ統計情報を使用すると、Visual Explain では、索引レベルの数 (NLEVELS 列) が、 照会が最初にデータベースにバインドされたときよりもかなり大きくなっていることに気付きます。 そこで、次のことを選択することになります。

    これらのアクションの後で、索引がアクセス・プランで再度使用されており、 照会のパフォーマンスがもう問題にはなっていないことがわかるでしょう。


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