アプリケーション内の SQL ステートメントの追加、削除、または変更後の、アクセス・プランに対する変更の検出と修正

通常、ソース・プログラムの SQL ステートメントが追加、削除、または変更された場合、ACTION(REPLACE) サブオプションを指定した BIND コマンドを実行して、関連の DB2® パッケージを再バインドする必要があります。 このコマンドを実行すると、SQL ステートメントのアクセス・プランが変更されたり、パフォーマンスに影響を与えたりすることがあります。

始める前に

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

このタスクについて

この手順では、アプリケーション内の SQL ステートメントが含まれる照会ワークロードを作成して EXPLAIN します。その後、アプリケーション内の SQL ステートメントに必要な変更を加えます。次に、アプリケーション内の SQL ステートメントが含まれる別の照会ワークロードを作成して EXPLAIN します。最後に、1 つ目の照会ワークロードの EXPLAIN スナップショットと、2 つ目の照会ワークロードの EXPLAIN スナップショットを比較します。

InfoSphere® Optim™ Query Workload Tuner の EXPLAIN スナップショット とは、特定の時点で収集された EXPLAIN 情報セットのことです。

手順

SQL ステートメントの追加、削除、または変更を行ったために発生した、アクセス・プランの変化を識別して、それに対処するには、以下のようにします。

  1. アプリケーション内の SQL ステートメントの照会ワークロードを作成します。
    1. SQL ステートメントをキャプチャーします。
    2. SQL ステートメントをキャプチャーした後、「すべてのステートメントから照会ワークロードを作成」ボタンをクリックします。
    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. アプリケーション内の SQL ステートメントの追加、除去、または変更を行います。終了後、ステートメントが静的である場合は、EXPLAIN オプションを YES に設定し、ACTION オプションを REPLACE に設定して、パッケージを再バインドします。
  4. アプリケーション内の SQL ステートメントの照会ワークロードをもう 1 つ作成します。
    1. SQL ステートメントをキャプチャーします。
    2. SQL ステートメントをキャプチャーした後、「すべてのステートメントから照会ワークロードを作成」ボタンをクリックします。
    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 に設定します。

フィードバック