ワークロード索引アドバイザーは、照会ワークロード内の SQL ステートメントによって参照される表に対して、新規の索引と、既存の索引の変更を推奨します。
このタスクについて
ワークロード索引アドバイザーは、ある索引を推奨する理由として、以下のいずれかを示すことがあります。- その索引が参照整合性をサポートしている。
- その索引がローカル述部をサポートしている。
- その索引が結合述部をサポートしている。
- その索引はソートを防止する。
- その索引が、複数列の外部キー索引アクセスをサポートしている。
- その索引が索引スクリーニングをサポートしている。
- その索引が、1 フェッチ索引アクセスをサポートしている。
ワークロード索引アドバイザーが新規索引および既存の索引の変更に関する推奨情報を生成した後、これらの推奨情報を詳しく検討することができます。データベースに対する適切な権限がある場合、DDL ステートメントを実行して、選択した推奨事項を実施できます。
手順
索引の推奨情報を生成し、それに基づいて対応するには、以下の手順を実行します。
- ワークフロー・アシスタントの「管理」セクションで、「ワークロードの管理」ページを開きます。
- 照会ワークロードを選択し、照会ワークロードのリストの上にあるツールバーで、左端にある「アドバイザーの起動」アイコンをクリックします。
「呼び出し」セクションの「ワークロード・アドバイザーの実行」ページが開きます。
- オプション: ワークロード索引アドバイザー用のオプションの値を変更します。 「呼び出し」セクションの左側にある「ワークロード」の下で、「アドバイザー・オプションの設定」をクリックします。次に、「索引」タブをクリックして、変更できるオプションを表示します。オプションに関するヘルプ情報を見るには、「?」アイコンをクリックしてください。オプションの値の変更が完了した後で、「確認」セクションの左側にある 「ワークロード・アドバイザーの実行」をクリックします。
- 以下の条件のいずれか、または両方に合致する場合は、「ワークロード・アドバイザーの実行前に EXPLAIN 情報を再収集する」チェック・ボックスが選択されていることを確認します。
- 別のアドバイザーによる推奨情報の実装後に、このアドバイザーを実行している。
- 別の時点で取得したこの照会ワークロードの EXPLAIN 情報と比較できる EXPLAIN 情報を収集しようとしている。
- 実行する項目の選択」ボタンをクリックします。
- 「アクティビティーの選択 (Select Activities)」ウィンドウで、「索引」チェック・ボックスを選択し、「OK」をクリックします。
「確認」セクションの「ワークロード・アドバイザーの推奨情報を確認」ページが開きます。そのページの「要約」セクションに、索引に関する推奨情報があるかどうかが示されます。
- 「ワークロード・アドバイザーの推奨情報を確認」ページで、「索引」タブをクリックして、索引に関する新しい推奨情報があるかどうかを確認します。
- ワークロード索引アドバイザーが推奨情報を持っている表のリストを確認します。 この情報は、表ごとに表示されます。
- カーディナリティー
- 表の行数。カーディナリティーが不明の場合、値は -1 です。
- 表の参照数 (References to Table)
- 表を参照する、照会ワークロード内の SQL ステートメントの数。
- 累積合計コスト
- 表を参照するすべての SQL ステートメントを実行する累積のコスト。
- 推奨される索引
- ワークロード索引アドバイザーが表に対して推奨する索引の数。
- IUDM ステートメント
- 表を参照する INSERT、UPDATE、DELETE、および MERGE ステートメントの数。
- 推奨情報を確認する各表の横のチェック・ボックスを選択します。
- 「推奨情報」セクションで、アドバイザーが推奨する新規索引および変更された索引を確認します。 この情報は、以下のセクションに表示されます。
- 索引
- 推奨された索引の名前。この名前は変更できます。
- 表
- 索引の推奨対象である表の名前。
- アクション
- 推奨されるアクション。
- 作成
- 索引を作成することが推奨されます。
- ドロップ
- 既存の索引をドロップすることが推奨されます。
重要: 索引のドロップの推奨情報は、現在の照会ワークロードに基づいています。
そのような推奨情報を実装する前に、現在の照会ワークロードの外部にあるステートメントによって索引が使用されていないことを確認してください。
- 変更
- 既存の索引を変更することが推奨されます。
- キー列
- 推奨された索引のキー列。
- 列の組み込み
- 照会がデータにアクセスするときに索引のみのアクセスを使用可能にする、キー列に付加される列。これらの列は、一意性を強制するためには使用されませんが、一意的な索引にのみ付加することができます。列の組み込みは、キー列とは異なります。
- 古いキー列
- 推奨が現行索引を変更する場合: 現行索引内のキー列。
- 古い INCLUDE 列
- 推奨が現行索引を変更する場合: キー列に付加されて、照会がデータにアクセスする際に索引のみのアクセスを使用可能にする列。
これらの列は、一意性を強制するためには使用されませんが、一意的な索引にのみ付加することができます。列の組み込みは、キー列とは異なります。
- 見積もりパフォーマンス向上 (Estimated Performance Gain)
- 推奨された索引が、表に対するステートメントの実行速度を改善できるパーセンテージ。
- ディスク・スペース見積もり
- 推奨された索引を作成するために必要なスペースの量。
- ワークロードで使用された時間 (Times Used In Workload)
- 表を参照する照会ワークロード内のすべての SQL ステートメントの実行カウントの合計。
- ユニーク
- 索引がユニークかどうかを示します。
- 推奨された理由 (Reason Recommended)
- アドバイザーが推奨している理由。
- 「既存の索引」セクションでは、DB2 オプティマイザーが既存の索引を使用しているかどうか、およびアドバイザーからの推奨情報に従った後もオプティマイザーが既存の索引の使用を続けるかどうかを調べることができます。 この情報は、以下のセクションに表示されます。
- 索引
- 索引の名前。
- 表
- 対応する表の名前。
- 作成者
- 索引の修飾子。
- キー列
- 既存索引のキー列。
- 列の組み込み
- 照会がデータにアクセスするときに索引のみのアクセスを使用可能にする、キー列に付加される列。これらの列は、一意性を強制するためには使用されませんが、一意的な索引にのみ付加することができます。列の組み込みは、キー列とは異なります。
- 前に使用 (Used Before)
- その索引が、対応する表を参照するステートメントの現行のアクセス・プランで使用されるかどうかを示します。
- 後で使用 (Used After)
- 推奨索引が作成された場合、その索引が使用されるかどうかを示します。
- 外部キー索引
- 索引が、対応する表の外部キー上にあるかどうかを示します。
- ユニーク
- 索引がユニークかどうかを示します。
- 仮想ドロップ
- 「候補索引のワークロード・テスト」ページからテストが実行される前に、索引が仮想的にドロップされていたかどうかを示します。
- 最終使用時間
- アクセス・プランで索引が最後に使用された時を示します。
- 「オプティマイザーに選択されたが推奨されない索引」セクションでは、アドバイザーが推奨しようと考え、DB2 オプティマイザーは使用することになっていたが、ユーザーの設定する制約に違反しているためにアドバイザーが推奨しなかった索引のリストを確認できます。制約を見たい場合は、「制約」タブをクリックします。 この情報は、以下のセクションに表示されます。
- 索引
- 索引の名前。
- 表
- 索引の評価対象である表の名前。
- キー列
- 索引のキー列。
- ディスク・スペース見積もり
- 索引に必要なディスク・スペース容量。
- 推奨されない理由 (Reason Not Recommended)
- 索引が違反している制約。
- どの SQL ステートメントが、推奨された索引を使用するかを見たい場合は、「推奨情報」セクションで、関心のある各索引の横のチェック・ボックスを選択し、選択された索引によって影響を受ける SQL の表示 (Show SQL Affected by the Selected Indexes)」アイコンをクリックします。
- オプション: ワークロード索引アドバイザーで 1 つまたは 2 つの制約を変更して、新規セットの推奨情報を生成します。 「推奨情報」セクションで、「制約の変更 (Change Constraints)」アイコンをクリックします。新規索引用に割り振るディスク・スペースの量および表当たりの索引許容数を変更できます。
- 推奨情報の DDL ステートメントを実行または保存する場合は、「DDL の実行」アイコンをクリックします。
「選択した索引の DDL の実行」ウィンドウでは、ステートメントを実行したり、ファイルに保存したりすることができます。また、ステートメントを実行または保存する前に、ステートメントを変更することもできます。
次のタスク
DDL の実行後、ワークロード統計アドバイザーを再実行します。