Explain データの分析が照会や環境の調整に役に立つ多数の方法があります。 たとえば、次のようなものがあります。
照会最適化に対する索引付けの影響に説明されているように、 適切な索引を使用するとパフォーマンスの向上に非常に役立ちます。 Explain 出力を使用すると、 一連の特定の照会に役に立つように作成した索引が使用されているかどうかを判別することができます。 Explain 出力では、次の領域での索引の使用法が探せます。
さらに、Explain 機能を使用して、既存の索引の代わりに別の索引を使用できるかどうか、 あるいは、全く索引を使用できないのかを評価することができます。 新規の索引を作成した後で、その索引の統計を収集し(RUNSTATS コマンドを使用)、 照会を再コンパイルしてください。 すでに Explain データを介して、 索引走査の代わりに表走査が使用されていることに気付いているかもしれません。 これは、表データのクラスター化を変更すると、起こる可能性があります。 以前に使用していた索引のクラスター率が現在低下している場合は、 次のようにすることができます。
Explain 出力を分析して、データに対するアクセスのタイプ (概して、 実行しているアプリケーションのタイプには最適ではない) を探すことができます。 たとえば、次のようなものがあります。
OLTP アプリケーションは、述部を区切る範囲を指定した索引走査を使用するのに最高の候補です。 これは、そのアプリケーションが、 キー列に対して等価述部を使用して修飾された数行しか戻さないようになっているためです。 OLTP 照会が表走査を使用している場合は、Explain データを分析して、 索引走査が使用されなかった理由を判別することができます。
"ブラウズ"タイプの照会の探索基準は不明確で、 多数の行を修飾しなければならなくなります。 ユーザーが通常、出力データの数個の画面を見るだけならば、 一部の結果が戻される前に、 応答セット全体を計算する必要はないことを確かめるようにすることができます。 この場合、ユーザーのゴールは最適化プログラムの基本操作方針、 つまりデータの最初の数画面だけではなく、 照会全体のリソースの消費を最小化することとは異なっています。
たとえば、マージ走査結合と分類演算子の両方がアクセス・プランで使用されたことを Explain 出力が示す場合は、 何行かがアプリケーションに戻される前に、応答セット全体が一時表で具体化されます。 この場合、SELECT ステートメントの OPTIMIZE FOR 文節を用いてアクセス・プランを変更することができます。 (OPTIMIZE FOR 文節の詳細については、 OPTIMIZE FOR n ROWS 文節を参照してください。) このように、最適化プログラムは一時表の応答セット全体を作成しないアクセス・プランを選択してから、 最初の行をアプリケーションに戻そうとすることができます。
照会が 2 つの表を結合する場合は、 使用されている結合処理のタイプを調べることができます。 複数行が含まれる結合 (意思決定支援照会での結合など) は、 通常、マージ結合を使用するよりも速く実行します。 数行しか含まれない結合 (OLTP 照会など) は、一般に、 ネストされたループ結合を使用するよりも速く実行します。 しかし、どちらの場合にも、 上記の一般的な結合の作業方法を変更することになる酌量すべき状況があります。 たとえば、ローカル述部またはローカル索引の使用などがあります。 (これらの 2 つの結合方式が作動する方法については、 ネストしたループ結合および マージ結合を参照してください。)