DB2 for Linux, UNIX, and Windows で実行する照会ワークロードのパフォーマンス改善のための索引に関する推奨情報の生成とそれに基づく対応

ワークロード索引アドバイザーは、照会ワークロード内の SQL ステートメントによって参照される表に対して、新規の索引と、既存の索引の変更を推奨します。

始める前に

このタスクについて

適切な索引セットを使用すると、表への効率的なアクセスや、照会処理の速度向上を実現できるため、索引は照会パフォーマンスにとって重要です。 索引を使用することで、ローカル・フィルタリングの実行、結合処理の効率化、ソート処理の必要性の排除、索引のみのアクセスの実行、および参照整合性の強化などにより、パフォーマンスを改善することができます。

ワークロード索引アドバイザーが新規索引および既存の索引の変更に関する推奨情報を生成した後、これらの推奨情報を詳しく検討することができます。データベースに対する適切な権限を持っている場合は、 DDL ステートメントを実行して、選択する推奨事項を実行することができます。

手順

  1. 「管理」セクションで、「ワークロードの管理およびチューニング」ページを開きます。
  2. 照会ワークロードを選択し、「アドバイザーおよびツールの呼び出し」アイコンをクリックします。このアイコンは、照会ワークロードのリストの上部のツールバーの左端にあります。「呼び出し」セクションの「ワークロード・アドバイザーの実行」ページが開きます。
  3. オプション: ワークロード索引アドバイザー用のオプションの値を変更します。
    「呼び出し」セクションの左側にある「ワークロード」の下で、「アドバイザー・オプションの設定」をクリックします。次に、「索引」タブをクリックして、変更できるオプションを表示します。オプションに関するヘルプ情報を見るには、「?」アイコンをクリックしてください。オプションの値の変更が完了した後で、「確認」セクションの左側にある 「ワークロード・アドバイザーの実行」をクリックします。
  4. 「ワークロード・アドバイザーの実行の前に EXPLAIN 情報を再収集する (Re-collect EXPLAIN information before running workload advisors)」オプションが選択されていることを確認します。
  5. 実行する項目の選択」ボタンをクリックします。
  6. アクティビティーの選択 (Select Activities)」ウィンドウで、「索引」チェック・ボックスを選択し、「OK」をクリックします。
  7. 「EXPLAIN 情報の収集」ウィンドウで、照会ワークロード内にある SQL ステートメントのランタイム環境に関する値を指定します。
    ワークフロー・アシスタントは、照会ワークロード内にある SQL ステートメントごとに EXPLAIN ステートメントを実行する必要があります。ワークロード索引アドバイザーは、SQL ステートメントに関する最新情報を必要とします。詳細については、ウィンドウの左下のヘルプ・アイコンをクリックしてください。
  8. ワークロード・アドバイザーの推奨情報を確認」ページで、「索引」タブをクリックして、索引に関する新しい推奨情報があるかどうかを確認します。
  9. 「索引」セクションの上部で、この情報を確認します。
    パフォーマンス推定改善率
    推奨された索引のすべてが作成された場合に、照会ワークロード内のすべてのステートメントを実行する時間が改善されるパーセンテージ。
    必要なディスク・スペース (DASD スペース)
    推奨された索引のすべてを作成するために必要なディスク・スペースの量。
    合計 IUD コスト
    推奨された索引が作成された後、照会ワークロード内にある INSERT、UPDATE、および DELETE ステートメントのすべてを実行するための合計時間 (ミリ秒単位)。
  10. ワークロード索引アドバイザーが推奨情報を持っている表のリストを確認します。
    この情報は、表ごとに表示されます。
    カーディナリティー
    表の行数。カーディナリティーが不明の場合、値は -1 です。
    表の参照数 (References to Table)
    表を参照する、照会ワークロード内の SQL ステートメントの数。
    累積合計コスト
    表を参照するすべての SQL ステートメントを実行する累積のコスト。
    推奨される索引
    ワークロード索引アドバイザーが表に対して推奨する索引の数。
    IUDM ステートメント
    表を参照する INSERT、UPDATE、DELETE、および MERGE ステートメントの数。
  11. 推奨情報を確認する各表の横のチェック・ボックスを選択します。
  12. 「推奨情報」セクションで、アドバイザーが推奨する新規索引および変更された索引を確認します。
    この情報は、以下のセクションに表示されます。
    索引
    推奨された索引の名前。この名前は変更できます。
    索引の推奨対象である表の名前。
    アクション
    推奨されるアクション。
    作成
    索引を作成することが推奨されます。
    変更
    既存の索引を変更することが推奨されます。
    索引列
    推奨された索引のキー列。
    列の組み込み
    照会がデータにアクセスするときに索引のみのアクセスを使用可能にする、キー列に付加される列。これらの列は、一意性を強制するためには使用されませんが、一意的な索引にのみ付加することができます。列の組み込みは、キー列とは異なります。
    見積もりパフォーマンス向上 (Estimated Performance Gain)
    推奨された索引が、表に対するステートメントの実行速度を改善できるパーセンテージ。
    ディスク・スペース見積もり
    推奨された索引を作成するために必要なスペースの量。
    ワークロードで使用された時間 (Times Used In Workload)
    表を参照する照会ワークロード内のすべての SQL ステートメントの実行カウントの合計。
    ユニーク
    索引がユニークかどうかを示します。
    推奨された理由 (Reason Recommended)
    アドバイザーが推奨している理由。
  13. 「既存の索引」セクションでは、DB2 オプティマイザーが既存の索引を使用しているかどうか、およびアドバイザーからの推奨情報に従った後もオプティマイザーが既存の索引の使用を続けるかどうかを調べることができます。
    この情報は、以下のセクションに表示されます。
    索引
    索引の名前。
    対応する表の名前。
    作成者
    索引の修飾子。
    索引列
    既存索引のキー列。
    列の組み込み
    照会がデータにアクセスするときに索引のみのアクセスを使用可能にする、キー列に付加される列。これらの列は、一意性を強制するためには使用されませんが、一意的な索引にのみ付加することができます。列の組み込みは、キー列とは異なります。
    後で使用 (Used After)
    推奨索引が作成された場合、その索引が使用されるかどうかを示します。
    前に使用 (Used Before)
    その索引が、対応する表を参照するステートメントの現行のアクセス・プランで使用されるかどうかを示します。
    外部キー索引
    索引が、対応する表の外部キー上にあるかどうかを示します。
  14. 「オプティマイザーに選択されたが推奨されない索引」セクションでは、アドバイザーが推奨しようと考え、DB2 オプティマイザーは使用することになっていたが、ユーザーの設定する制約に違反しているためにアドバイザーが推奨しなかった索引のリストを確認できます。制約を見たい場合は、「制約」タブをクリックします。
    この情報は、以下のセクションに表示されます。
    索引
    索引の名前。
    索引の評価対象である表の名前。
    索引列
    索引のキー列。
    列の組み込み
    照会がデータにアクセスするときに索引のみのアクセスを使用可能にする、キー列に付加される列。これらの列は、一意性を強制するためには使用されませんが、一意的な索引にのみ付加することができます。列の組み込みは、キー列とは異なります。
    ディスク・スペース見積もり
    索引が必要とするディスク・スペースの量。
    推奨されない理由 (Reason Not Recommended)
    索引が違反している制約。
  15. どの SQL ステートメントが、推奨された索引を使用するかを見たい場合は、「推奨情報」セクションで、関心のある各索引の横のチェック・ボックスを選択し、選択された索引によって影響を受ける SQL の表示 (Show SQL Affected by the Selected Indexes)」アイコンをクリックします。
  16. 推奨情報の DDL ステートメントを実行または保存する場合は、「DDL の実行」アイコンをクリックします。 「選択した索引の DDL の実行」ウィンドウでは、ステートメントを実行したり、ファイルに保存したりすることができます。また、ステートメントを実行または保存する前に、ステートメントを変更することもできます。

フィードバック