テスト・システムから実動システムにアプリケーションをデプロイした後の、アクセス・プランに対する変更の検出と修正

テスト・システム上の SQL ステートメントを実動システム上にデプロイした場合に、これらの SQL ステートメントのアクセス・プランが同じままかどうかを調べることができます。実動システム上のいずれかのアクセス・プランを改善する必要がある場合には、問題のある SQL ステートメントをチューニングしたり、テスト・システム上で使用していたアクセス・プランに戻ったりできます。

始める前に

このタスクについて

この手順では、テストしようとしているアプリケーションの SQL ステートメントの照会ワークロードを作成します。この照会ワークロードをチューニングしてから、アプリケーションを実動システムにデプロイします。次に、実動システムで、同じ SQL ステートメントの照会ワークロードを作成します。最後に、テスト・システム上の SQL ステートメントで使用されたアクセス・プランと、実動システム上のステートメントで使用されるアクセス・プランを比較します。実動システム上のアクセス・プランに有害な変化があった場合には、問題のあるステートメントの照会ワークロードを作成してチューニングしたり、テスト・システムからのアクセス・プランに戻ったりして、問題を修正できます。

手順

テスト・システムから実動システムにアプリケーションをデプロイしたために発生した、アクセス・プランの変化を識別して、それに対処するには、以下のようにします。

  1. テスト環境で、アプリケーション内の SQL ステートメントの照会ワークロードを作成します。
    1. SQL ステートメントをキャプチャーします。
    2. SQL ステートメントをキャプチャーした後、「ワークロードにすべて保存 (Save All to Workload)」ボタンをクリックします。
    3. 「ワークロード名および記述の入力 (Input Workload Name and Description)」ウィンドウで、新規照会ワークロードを識別するための情報を指定します。
    「管理」セクションの「ワークロードの管理およびチューニング」ページが開きます。新規の照会ワークロードが、このページの表に表示されます。照会ワークロードの状況は CAPTURED です。
  2. ワークロード統計アドバイザーを実行し、その推奨情報を実装します。
  3. システム・カタログのローカル・キャッシュが現行のキャッシュである必要があります。
  4. ワークロード索引アドバイザーを実行するときに照会ワークロードを再 Explain することを指定します。
    1. 「呼び出し」セクションをまだ開いていない場合は、ワークフロー・アシスタントの左側で「呼び出し」タブをクリックします。
    2. 「ワークロード・アドバイザーの実行」ページで、オプション「ワークロード・アドバイザーの実行前に EXPLAIN 情報を再収集する」を選択します。
  5. ワークロード統計アドバイザーを再び実行して、アドバイザーに追加の推奨情報があるかどうかを判別します。 ある場合は、それを実装します。
  6. ワークロード統計アドバイザーからの追加の推奨情報を実装した場合は、システム・カタログのローカル・キャッシュが現行のキャッシュである必要があります。
  7. ワークロード索引アドバイザーを実行するときに照会ワークロードを再 Explain することを指定します。
    1. 「呼び出し」セクションをまだ開いていない場合は、ワークフロー・アシスタントの左側で「呼び出し」タブをクリックします。
    2. 「ワークロード・アドバイザーの実行」ページで、オプション「ワークロード・アドバイザーの実行前に EXPLAIN 情報を再収集する」を選択します。
  8. ワークロード索引アドバイザーを実行し、その推奨情報を実装します。
  9. パフォーマンス要件に合わせて照会ワークロードをチューニングする場合は、アプリケーションを実動システムにデプロイします。
  10. データ・ソース・エクスプローラーで、実動システムに接続します。
  11. 接続を右クリックし、「分析とチューニング」 > 「チューニングの開始」を選択します。
  12. テスト・システム上で作成した照会ワークロードと同一か類似している照会ワークロードを作成します。
    1. SQL ステートメントをキャプチャーします。
    2. SQL ステートメントをキャプチャーした後、「ワークロードにすべて保存 (Save All to Workload)」ボタンをクリックします。
    3. 「ワークロード名および記述の入力 (Input Workload Name and Description)」ウィンドウで、新規照会ワークロードを識別するための情報を指定します。
    「管理」セクションの「ワークロードの管理およびチューニング」ページが開きます。新規の照会ワークロードが、このページの表に表示されます。照会ワークロードの状況は CAPTURED です。
  13. 照会ワークロードを EXPLAIN します。
    注: 以下のソースから SQL ステートメントをキャプチャーし、照会ワークロードの作成時に EXPLAIN 情報を保存することを選択した場合は、照会ワークロードを EXPLAIN する必要はありません。
    • DB2 for Linux, UNIX, and Windows: ACTIVITIES イベント・モニター、EXPLAIN 表、パッケージ、パッケージ・キャッシュ
    • DB2 for z/OS: カタログ・プラン、パッケージ、動的ステートメント・キャッシュ
    1. 「ワークロードの管理」ページで、照会ワークロードを選択し、「追加のアクション」フィールドの「選択されたワークロードの Explain」を選択します。
    2. 「EXPLAIN 情報の収集」ウィンドウで、照会ワークロード内にある SQL ステートメントのランタイム環境に関するオプション値を指定します。
  14. テスト・システムに接続しているワークフロー・アシスタントのインスタンスに戻ります。このインスタンスがもう開いていない場合は、データ・ソース・エクスプローラーで、システムに接続し、接続を右クリックして、「分析とチューニング」 > 「チューニングの開始」を選択します。
  15. ワークフロー・アシスタントの左側にある「管理」タブをクリックします。
  16. 「ワークロードの管理」ページで、ステップ 1 で作成した照会ワークロードを選択します。
  17. 「比較」ボタンをクリックします。
  18. 「選択したワークロードのアクセス・プランを、別のワークロードのアクセス・プランと比較する」オプションを選択します。
  19. 「アクセス・プランを別のワークロード内のアクセス・プランと比較する」ウィザードで、実動システムを選択し、「次へ」をクリックします。
  20. 2 番目に作成した照会ワークロードを選択し、「次へ」をクリックします。
  21. テスト・システム上の照会ワークロードと実動システム上の照会ワークロードの両方で、比較に使用する EXPLAIN スナップショットを選択します。次に、「完了」をクリックします。

次のタスク

「比較履歴」ページで、比較対象の項目をダブルクリックします。「ワークロード EXPLAIN スナップショットおよび SQL ステートメント別に比較結果を表示」ページで、「ステートメント」表を調べて、2 つの EXPLAIN スナップショット間で違いがあるステートメントを探します。他の人々と結果を共有する必要がある場合は、表の上の「追加のアクション」フィールド内の「比較 HTML レポートを生成する」を選択します。

実動システム上の SQL ステートメントのアクセス・プランか見積もりコストを改善する必要があることが判明した場合には、これらのステートメントから照会ワークロードを作成できます。その後で、照会ワークロードをチューニングできます。「ワークロード EXPLAIN スナップショットおよび SQL ステートメント別に比較結果を表示」ページ上の「追加のアクション」フィールドで、「チューニング用の新しい照会ワークロードを作成する」を選択します。

別の方法として、実動システム上のアクセス・プランを、テスト・システムのアクセス・プランで置き換えることができます。 「ワークロード EXPLAIN スナップショットおよび SQL ステートメント別に比較結果を表示」ページ上の「追加のアクション」フィールドで、「全 SQL ステートメントのアクセス・プランをロックダウンする」を選択します。この方法を選択する場合は、統計を改善したり、オプティマイザーへの改善を含む保守を適用したりするなど、アクセス・プランの改善につながり得る変更をシステムに加えても、ロックダウンしたアクセス・プランには何ら影響がないことをご理解いただく必要があります。しかし、アクセス・プランが急激に変化することはなく、その実行は予測可能なものとなります。


フィードバック