照会ワークロード内の SQL ステートメントのアクセス・プランに現在含まれる 1 つ以上の索引を仮想的にドロップした後に、索引の推奨情報を得ることができます。
このタスクについて
この手順では、チューニングする SQL ステートメントの照会ワークロードを作成します。次に、ワークロード統計アドバイザーを 2 回実行し、その推奨情報を実装します。その後、SQL ステートメントのアクセス・プランに含まれる既存の索引を仮想的にドロップし、ワークロード索引アドバイザーを実行します。
手順
ワークロード索引アドバイザーを実行する前に、既存の索引を仮想的にドロップするには、以下を実行します。
- チューニングする照会ワークロードを作成します。
DB2 for z/OS® で実行する照会ワークロードを作成するための SQL ステートメントをキャプチャーできる場所を参照してください。
- 照会ワークロードに含まれる SQL ステートメントのアクセス・プランにあるオブジェクトの統計を改善するため、ワークロード統計アドバイザーを実行して RUNSTATS 制御ステートメントを生成します。その後、推奨される RUNSTATS 制御ステートメントを実行します。 DB2 for z/OS で実行する照会ワークロードの統計の収集に関する推奨情報の生成とそれに基づく対応を参照してください。
- ワークロード統計アドバイザーを再び実行して、アドバイザーに追加の推奨情報があるかどうかを判別します。
アドバイザーによる追加の推奨情報を実装します。
- 照会ワークロードの再 Explain を実行します。
- ワークフロー・アシスタントの「管理」セクションに戻ります。
- ワークフロー・アシスタントの左側で「ワークロード・リスト」を選択します。
- 照会ワークロードを選択します。次に、「追加のアクション」フィールドで「選択されたワークロードの Explain」を選択します。
- EXPLAIN タスクの終了後、システム・カタログのローカル・キャッシュが最新であることを確認します。
- 「呼び出し」セクションの「ワークロード・アドバイザーの実行」ページに戻ります。
- ワークフロー・アシスタントの左側で「候補索引のワークロード・テストの実行」を選択します。 「候補索引のワークロード・テスト」ページが開きます。このページの下半分にある表には、照会ワークロード内の SQL ステートメントのアクセス・プランに含まれる索引がリストされます。
- 「仮想ドロップ」列で、照会ワークロードの索引推奨情報の生成時にワークロード索引アドバイザーで考慮対象から除く索引を選択します。
- 「ワークロード索引アドバイザーの実行」をクリックします。 「ワークロード・アドバイザーの推奨情報を確認」ページが開きます。「要約」セクションで、ワークロード索引アドバイザーによって新しい推奨情報が生成されたかどうかを確認できます。
「索引」タブをクリックして推奨情報を表示します。
- ワークロード索引アドバイザーが推奨情報を持っている表のリストを確認します。
この情報は、表ごとに表示されます。
- カーディナリティー
- 表の行数。カーディナリティーが不明の場合、値は -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 の実行後、ワークロード統計アドバイザーを再実行します。