設計アドバイザーのワークロードの定義

設計アドバイザーは、特定のワークロードを分析する際、ワークロードに組み込まれたステートメントのタイプ、特定のステートメントが使用される頻度、およびデータベースの特性などの要素を考慮して、ワークロードの実行に要するトータル・コストを最小化するための推奨値を生成します。

このタスクについて

ワークロード とは、データベース・マネージャーが特定の期間に処理しなければならない一連の SQL ステートメントのことです。 設計アドバイザーの実行対象は以下のとおりです。
  • db2advis コマンドによりインラインで入力した、単一の SQL ステートメント
  • Db2® スナップショットにキャプチャーされた動的 SQL ステートメントのセット
  • ワークロード・ファイルに組み込んだ SQL ステートメントのセット
ワークロード・ファイルを作成するか、または既存のワークロード・ファイルを変更することができます。 以下に示すような種々のソースから、ステートメントをファイルにインポートできます。
  • 区切り文字で区切られているテキスト・ファイル
  • イベント・モニター表
  • EXPLAIN_STATEMENT 表内の EXPLAIN されたステートメント
  • Db2 スナップショットでキャプチャーした最新の SQL ステートメント
  • ワークロード・マネージャー・アクティビティー表
  • コマンド行から -wlm オプションを使用したワークロード・マネージャー・イベント・モニター表
SQL ステートメントをワークロード・ファイルにインポートした後で、 ステートメントの追加、変更、修正、または削除、ならびにステートメントの頻度の変更を実行できます。

プロシージャー

  • 設計アドバイザーを動的 SQL ステートメントに対して実行するには、以下のようにします。
    1. 次のコマンドを実行して、データベース・モニターをリセットします。
         db2 reset monitor for database database-name
    2. データベースに対して動的 SQL ステートメントを実行できるよう、しばらく待機します。
    3. -g パラメーターを使用して db2advis コマンドを呼び出します。 動的 SQL ステートメントを後で参照できるように ADVISE_WORKLOAD 表に保管する場合は、 -p パラメーターも使用します。
  • ワークロード・ファイル内にある一式の SQL ステートメントに対して設計アドバイザーを実行するには、以下のようにします。
    1. 手動でワークロード・ファイルを作成するか (各 SQL ステートメントをセミコロンで区切る)、 または前述のソース (複数可) から SQL ステートメントをインポートします。
    2. ワークロード内のステートメントの頻度を設定します。 ワークロード・ファイル内にあるすべてのステートメントには、デフォルトで頻度 1 が割り当てられています。 SQL ステートメントの頻度は、そのステートメントがワークロード内に出現する回数を表しますが、この回数は他のステートメントが出現する回数との相対値で示されています。 例えば、ある SELECT ステートメントがワークロード内に 100 回出現し、別の SELECT ステートメントが 10 回出現するとします。 これら 2 つのステートメントの相対頻度を表すために、最初の SELECT ステートメントに頻度 10 を割り当て、2 番目の SELECT ステートメントの頻度を 1 にします。 ワークロード内の特定のステートメントの頻度または重みを手動で変更するには、ステートメントの後に - - # SET FREQUENCY nという行を挿入します。ここで、 n はステートメントに割り当てる頻度値です。
    3. -i パラメーターの後にワークロード・ファイルの名前を指定して、 db2advis コマンドを呼び出します。
  • ADVISE_WORKLOAD 表に含まれているワークロードに対して設計アドバイザーを実行するには、 -w パラメーターの後にワークロードの名前を指定して、 db2advis コマンドを呼び出します。