データベース構造または許可を変更した後の、アクセス・プランに対する変更の検出と修正

データベース構造の更新 (表の変更、索引の作成、索引の削除など) およびユーザー許可の変更によって、SQL ステートメントのアクセス・プランが変更されたり、パフォーマンスに影響を与えたりすることがあります。

始める前に

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

このタスクについて

この手順では、データベース構造や許可を変更する前に、まずアプリケーション内の SQL ステートメントが含まれる照会ワークロードを作成して EXPLAIN し ます。その後、データベース構造か許可を変更します。最後に、アプリケーション内の SQL ステートメントが含まれる照会ワークロードをもう 1 つ作成して EXPLAIN し、1 つ目の照会ワークロードの EXPLAIN スナップショットと、2 つ目の照会ワークロードの EXPLAIN スナップショットを比較します。

この手順では 2 つの別個の照会ワークロードを使用しますが、単一の照会ワークロードを作成して EXPLAIN し、データベース構造か許可を変更してから再度その照会ワークロードを EXPLAIN することもできます。その後で、2 つの EXPLAIN スナップショットを比較できます。

手順

データベース構造や許可を変更したために発生した、アクセス・プランの変化を識別して、それに対処するには、以下のようにします。

  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. DB2 内のデータベース・オブジェクトか許可に変更を加えます。終了後、ステートメントが静的である場合は、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. 以前のアクセス・プラン・セットの方が良かったのでこちらを使用する場合は、「比較」セクションの「ワークロード EXPLAIN スナップショットおよび SQL ステートメント別に比較結果を表示」ページの「追加のアクション」フィールド内で「全 SQL ステートメントのアクセス・プランをロックダウンする」を選択します。 「アクセス・プランをロックダウンするためのスクリプトの生成」ウィンドウで、必要な情報を指定します。スクリプトを生成した後に検討して保存します。その後、ご使用のバージョンの DB2 の指示に従って、スクリプトをデプロイできます。
  10. SQL ステートメントが静的で、問題のあるステートメントの照会ワークロードをチューニングしたか、最適化のヒントか最適化プロファイルを作成したか、アクセス・プランをロックダウンした場合は、パッケージを再バインドします。将来の比較の際にバインド時の EXPLAIN スナップショットを使用できるようにする場合は、EXPLAIN オプションを YES に設定します。

フィードバック