統計の収集

ワークロード統計アドバイザーを使用すると、データベース管理者は、照会ワークロード全体に含まれる SQL ステートメントに関連した統計を収集することができます。

始める前に

このタスクについて

ワークロード統計アドバイザーは、照会ワークロード内の SQL ステートメントが参照する表に関して、必要な統計を収集するための多数の RUNSTATS コマンドを生成します。

統計が相互に不整合であったり、矛盾していたりすることがよくあります。 統計が収集されていない場合もあります。 列グループの統計の収集はコストが高くなることがあります。ワークロード統計アドバイザーは、どの統計が必要であるかを判断できるため、ユーザーは必要のない統計を収集することで時間やリソースを無駄にせずに済みます。

ワークロード統計アドバイザーが統計収集用の RUNSTATS コマンドを生成した後、統計の現在の状態とアドバイザーが統計内で検出した問題点を検討することができます。データベースに対する適切な権限を持っている場合、選択した RUNSTATS ステートメントを実行できます。

手順

  1. チューニングする SQL ステートメントのワークロードを作成します。
    1. チューニングする SQL ステートメントをキャプチャーします。 DB2 for Linux, UNIX, and Windows で実行する照会ワークロードを作成するための SQL ステートメントをキャプチャーできる場所を参照してください。
    2. SQL ステートメントをキャプチャーした後、「すべてのステートメントから照会ワークロードを作成」ボタンをクリックします。
    3. 「ワークロード名および記述の入力 (Input Workload Name and Description)」ウィンドウで、新規照会ワークロードを識別するための情報を指定します。
    「管理」セクションの「ワークロードの管理およびチューニング」ページが開きます。新規の照会ワークロードが、このページの表に表示されます。照会ワークロードの状況は CAPTURED です。
  2. ワークロード統計アドバイザーを実行します。
    1. 「アドバイザーおよびツールの呼び出し」アイコンをクリックします。このアイコンは、照会ワークロードのリストの上部のツールバーの左端にあります。「呼び出し」セクションの「ワークロード・アドバイザーの実行」ページが開きます。
    2. オプション: ワークロード統計アドバイザー用のオプションの値を変更します。
      「呼び出し」セクションの左側にある「ワークロード」の下で、「アドバイザー・オプションの設定」をクリックします。次に、「統計」タブをクリックして、変更できるオプションを表示します。オプションに関するヘルプ情報を見るには、「統計」セクション内の「ヘルプ」アイコンをクリックしてください。オプションの値の変更が完了した後で、「確認」セクションの左側にある 「ワークロード・アドバイザーの実行」をクリックします。
    3. 「実行する項目の選択」ボタンをクリックします。
    4. アクティビティーの選択 (Select Activities)」ウィンドウで、「統計」チェック・ボックスを選択し、「OK」をクリックします。
    5. 照会ワークロードがまだ EXPLAIN されていない場合、「EXPLAIN 情報の収集」ウィンドウが開きます。 照会ワークロードに含まれている SQL ステートメントのランタイム環境の値の指定は、オプションです。 詳細については、ウィンドウの左下のヘルプ・アイコンをクリックしてください。
    「確認」セクションの「ワークロード・アドバイザーの推奨情報を確認」ページが開きます。このページの「要約」セクションに、ワークロード統計アドバイザーがその照会ワークロード用の新しい推奨情報を持っているかどうかが表示されます。
  3. ワークロード・アドバイザーの推奨情報を確認」ページで、「統計」タブをクリックして、RUNSTATS コマンドに関する新しい推奨情報があるかどうかを確認します。
  4. 上部の表の以下の列を使用して、照会ワークロードのパフォーマンス改善のために修正することが最も重要な統計を持つオブジェクトを判断します。
    表の参照数 (References to Table)
    表を参照する、照会ワークロード内の SQL ステートメントの数。
    カーディナリティー
    表の行数。表のカーディナリティーが不明の場合、値は -1 です。
    累積合計コスト
    表を参照するステートメントの累積コスト。 この列には、ある表を参照する SQL ステートメントの累積コストが、別の表を参照するステートメントの累積コストに比べて高いかどうかを表示できます。コストが高い場合、その表に対して RUNSTATS を実行すると、このコストを削減するのに役立つことがあります。
    収集のタイム・スタンプ (Collection Timestamp)
    表の統計が最後に収集された日時。
    IUDM カウンター
    最後に RUNSTATS が表統計を収集して以来、対象表に対して実行された挿入、更新、削除、マージの操作の数。
    この列は、DB2 for Linux, UNIX, and Windows バージョン 10.5 以降で実行する照会ワークロードに関する推奨情報に示されます。
  5. 最も重要なオブジェクトについて、ワークロード統計アドバイザーが識別した問題を調べます。
    欠落
    表または表の索引に関する 1 つ以上の統計が欠落しているかどうかを示します。行をクリックし、次に「選択済みの表の詳細」セクションで、その表の統計を調べます。 「欠落」の値を持つ列を見つけます。
    矛盾
    表、列、または表の索引に関する 2 つ以上の統計が矛盾しているかどうかを示します。表の値が「はい」の場合、その表の行をクリックし、「表の詳細」セクション内の「矛盾」セクションを調べます。「選択済みの表の詳細」セクション内のその他のセクションでも「矛盾」の値を持つ列を調べることができます。
    古い (Obsolete)
    表の統計が古いかどうかを示します。統計が古いかどうかは、ワークロード統計アドバイザーのオプションで設定した存続期間しきい値によって判別されます。
    カーディナリティー不明 (Cardinality Unknown)
    表のカーディナリティーが不明であるかどうかを示します。これに該当するのは、カーディナリティーが 0 であり、表の統計が古い場合です。
    古い統計ビュー (Obsolete Statistical View)
    統計ビューの場合、この列は、統計ビューの統計が、そのビューの基本表の統計より古いかどうかを示します。
  6. 最も重要なオブジェクトのそれぞれについて、カタログ内に統計があるが照会ワークロード内の SQL ステートメントによって参照されない列または列グループがあるかどうかを調べます。 「列」セクションおよび「列グループ」セクションの下部で探します。 ワークロード統計アドバイザーは、ユーザーが後で選択して実行できる以下の 2 つのタイプの RUNSTATS コマンドを生成するため、ユーザーはこの情報を見つける必要があります。
    マージ (Merged)
    マージ RUNSTATS コマンドには、表統計を修正し、カタログ内に統計がある非参照の列または列グループのすべてまたはサブセットに関する統計を更新するための推奨設定が含まれます。
    このタイプのコマンドの実行は、追加の列があるために、より多くのリソースを必要とします。
    アドバイザー生成 (Advisor-generated)
    アドバイザー生成 RUNSTATS コマンドには、表統計を修正し、参照されない列および列グループに関する統計をドロップするための推奨設定が含まれています。
  7. RUNSTATS コマンドを実行する各オブジェクトの横のチェック・ボックスを選択します。
  8. 5. 「RUNSTATS の表示 (View RUNSTATS)」ボタンをクリックします。 「推奨される RUNSTATS コマンドの確認 (Review Recommended RUNSTATS Commands)」ウィザードが開きます。
  9. ウィザードの指示に従って、選択したオブジェクトごとに、マージ RUNSTATS コマンドまたはアドバイザー生成 RUNSTATS コマンドを実行または保存します。

次のタスク

ワークロード統計アドバイザーをもう 1 回実行して、追加の推奨情報があるかどうか確認します。
  1. システム・カタログのローカル・キャッシュが最新であることを確認します。
  2. 「呼び出し」セクションの「ワークロード・アドバイザーの実行」ページに戻ります。
  3. 「ワークロード・アドバイザーの実行前に EXPLAIN 情報を再収集する」オプションを選択します。
  4. 「実行する項目の選択」をクリックし、「統計」チェック・ボックスを選択し、「OK」をクリックします。

フィードバック