RUNSTATS ユーティリティーを実行した後の、EXPLAIN 情報のスナップショットの使用によるアクセス・プランの比較

RUNSTATS ユーティリティーを実行して、表および索引に関する現在の統計を収集することができます。 このユーティリティーを実行すると、オプティマイザーに最も正確な情報が提供され、その情報を使用して最適なアクセス・プランを生成することができます。

始める前に

前提条件が満たされていることを確認してください。

このタスクについて

この手順では、RUNSTATS ユーティリティーを実行する前に、アプリケーションにある SQL ステートメントが含まれる照会ワークロードを作成および EXPLAIN します。 次に、RUNSTATS を実行します。 最後に、アプリケーションの SQL ステートメントが含まれる照会ワークロードをもう 1 つ作成および EXPLAIN し、最初の照会ワークロードの EXPLAIN スナップショットと 2 番目の照会ワークロードの EXPLAIN スナップショットを比較します。

この手順では 2 つの別個の照会ワークロードを使用しますが、単一の照会ワークロードを作成して EXPLAIN し、RUNSTATS を実行し、再び照会ワークロードを EXPLAIN することができます。 その後で、2 つの EXPLAIN スナップショットを比較できます。

手順

RUNSTATS ユーティリティー実行後に EXPLAIN 情報のスナップショットを使用してアクセス・プランを比較するには、以下のようにします。

  1. アプリケーション内の SQL ステートメントの照会ワークロードを作成します。
    1. SQL ステートメントをキャプチャーします。
    2. SQL ステートメントをキャプチャーした後、「ワークロードにすべて保存 (Save All to Workload)」ボタンをクリックします。
    3. 「ワークロード名および記述の入力 (Input Workload Name and Description)」ウィンドウで、新規照会ワークロードを識別するための情報を指定します。
    「管理」セクションの「ワークロードの管理およびチューニング」ページが開きます。新規の照会ワークロードが、このページの表に表示されます。照会ワークロードの状況は CAPTURED です。
  2. 照会ワークロードを EXPLAIN します。
    注: 以下のソースから SQL ステートメントをキャプチャーし、照会ワークロードの作成時に EXPLAIN 情報を保存することを選択した場合は、照会ワークロードを EXPLAIN する必要はありません。
    • DB2 for Linux, UNIX, and Windows: ACTIVITIES イベント・モニター、EXPLAIN 表、パッケージ、パッケージ・キャッシュ
    • DB2 for z/OS: カタログ・プラン、パッケージ、動的ステートメント・キャッシュ
    1. 「ワークロードの管理」ページで、照会ワークロードを選択し、「追加のアクション」フィールドの「選択されたワークロードの Explain」を選択します。
    2. 「EXPLAIN 情報の収集」ウィンドウで、照会ワークロード内にある SQL ステートメントのランタイム環境に関するオプション値を指定します。
  3. RUNSTATS 制御ステートメントを実行し、データベース・オブジェクトの統計を収集および更新します。 終了後、ステートメントが静的である場合は、EXPLAIN オプションを YES に設定し、ACTION オプションを REPLACE に設定して、パッケージを再バインドします。
  4. アプリケーション内の SQL ステートメントの照会ワークロードをもう 1 つ作成します。
    1. SQL ステートメントをキャプチャーします。
    2. SQL ステートメントをキャプチャーした後、「ワークロードにすべて保存 (Save All to Workload)」ボタンをクリックします。
    3. 「ワークロード名および記述の入力 (Input Workload Name and Description)」ウィンドウで、新規照会ワークロードを識別するための情報を指定します。
  5. 照会ワークロードを EXPLAIN します。
    注: 以下のソースから SQL ステートメントをキャプチャーし、照会ワークロードの作成時に EXPLAIN 情報を保存することを選択した場合は、照会ワークロードを EXPLAIN する必要はありません。
    • DB2 for Linux, UNIX, and Windows: ACTIVITIES イベント・モニター、EXPLAIN 表、パッケージ、パッケージ・キャッシュ
    • DB2 for z/OS: カタログ・プラン、パッケージ、動的ステートメント・キャッシュ
    1. 「ワークロードの管理」ページで、照会ワークロードを選択し、「追加のアクション」フィールドの「選択されたワークロードの Explain」を選択します。
    2. 「EXPLAIN 情報の収集」ウィンドウで、照会ワークロード内にある SQL ステートメントのランタイム環境に関するオプション値を指定します。
  6. 2 つの照会ワークロードを比較します。
    1. ワークフロー・アシスタントの左側にある「管理」タブをクリックします。
    2. 「ワークロードの管理」ページで、ステップ 2 で EXPLAIN した照会ワークロードを選択します。その後、「比較」ボタンをクリックします。
    3. 「別のワークロードまたはスナップショットとの比較を選択します」ウィンドウで、「選択したワークロードのアクセス・プランを、別のワークロードのアクセス・プランと比較する」オプションを選択して、「OK」をクリックします。
    4. 「アクセス・プランを別のワークロード内のアクセス・プランと比較する」ウィザードのステップに従います。
    5. 比較の終了時に、アクセス・プランや見積もりコストの変化を探します。 処置が必要な変化がない場合には、比較は終わりです。しかし、処置が必要な変化がある場合は、次のステップに進んでください。
  7. パフォーマンス上の問題がある SQL ステートメントが含まれる照会ワークロードを作成してチューニングする場合は、「比較」セクションの「ワークロード EXPLAIN スナップショットおよび SQL ステートメント別に比較結果を表示」ページの「追加のアクション」フィールド内で「チューニング用の新しい照会ワークロードを作成する」を選択します。 「新規照会ワークロードの生成」ウィザードが開きます。このウィザードで、照会ワークロードに SQL ステートメントを組み込む基準を設定できます。照会ワークロードの作成後に、以下の一般的なステップを参照してチューニングできます。
  8. 問題のある 1 つ以上のステートメントの最適化のヒントや最適化プロファイルを作成する場合は、以下のいずれかのステップに従います。
    1. アクセス・プラン比較時の対象ステートメントのリストで、ステートメントを選択します。
    2. リスト上部の「詳細の表示」ボタンをクリックします。
    3. 「SQL ステートメント・アクセス・プラン別に比較結果を表示」ページの上部で、「最適化ヒントの作成」ボタンか「最適化プロファイルの作成」ボタンをクリックします。表示されるボタンは、処理しているデータベース接続に応じて異なります。
  9. SQL ステートメントが静的で、問題のあるステートメントの照会ワークロードをチューニングしたか、最適化のヒントか最適化プロファイルを作成した場合は、パッケージを再バインドします。将来の比較の際にバインド時の EXPLAIN スナップショットを使用できるようにする場合は、EXPLAIN オプションを YES に設定します。

フィードバック