列編成表への変換のための推奨情報の生成とそれに基づく対応

ワークロード表編成アドバイザーは、行編成表を列編成表に変換することを推奨します。

始める前に

このタスクについて

アドバイザーは、照会ワークロードにあるステートメントが参照する表すべてを調べます。 提示される推奨情報によって、照会ワークロード全体のパフォーマンス向上が最高になる見積もりが得られます。

アドバイザーは分析結果と根拠を示し、変換が推奨されている表と、推奨されていない表が表示されます。 表のカーディナリティー、照会ワークロードでそれらを参照するステートメント数、表を参照するステートメントを実行する累積コスト、ステートメント自体などの情報を確認できます。

また、表を変換するために必要な変更を実装するための DDL を表示および保存できます。

ヒント: ワークロード統計アドバイザーまたはワークロード索引アドバイザー (あるいは両方) からの推奨ではパフォーマンスが十分に改善されないことが分かった場合にのみ、このアドバイザーを実行してください。 統計の収集、または索引の作成/変更 (あるいはその両方) を行うと、照会ワークロードに関して必要なパフォーマンスが得られる可能性があります。 また、ワークロード表編成アドバイザーは、正しい統計に基づいて推奨情報を生成します。

手順

列編成表への変換のための推奨情報を生成し、それに基づいて対応する方法:

  1. チューニングする SQL ステートメントのワークロードを作成します。
    1. チューニングする SQL ステートメントをキャプチャーします。 DB2 for Linux, UNIX, and Windows で実行する照会ワークロードを作成するための SQL ステートメントをキャプチャーできる場所を参照してください。
    2. 「すべてのステートメントから照会ステートメントを作成」ボタンをクリックし、プロンプトが表示されたら照会ワークロードの名前と説明を指定します。
    「管理」セクションの「ワークロードの管理およびチューニング」ページが開きます。新規の照会ワークロードが、このページの表に表示されます。照会ワークロードの状況は CAPTURED です。
  2. 照会ワークロードでワークロード統計アドバイザーを 2 度実行し、その都度、推奨情報を実装します。
  3. ワークフロー・アシスタントの「管理」セクションで、照会ワークロードを選択し、「アドバイザーの起動」ボタンをクリックします。
  4. オプション: グローバル設定をオーバーライドする、このアドバイザーの設定値を設定します。 「起動」セクションの左側にある「アドバイザー・オプションの設定」を選択します。 その後、「表編成」タブを選択します。
  5. ワークフロー・アシスタントの左側で、「ワークロード・アドバイザーの実行」を選択します。
  6. 「ワークロード・アドバイザーの実行前に EXPLAIN 情報を再収集する」オプションを選択します。
  7. 「実行する項目の選択」をクリックします。
  8. 「表編成」を選択し、「OK」をクリックします。 ワークフロー・アシスタントの「確認」セクションが「ワークロード・アドバイザーの推奨情報の確認」ページに開きます。 推奨情報がある場合、「表編成」タブが表示されます。
  9. 「表編成」タブをクリックします。

タスクの結果

このセクションには、列編成にマイグレーションすることが推奨される表、および推奨されない表が表示されます。

セクション上部には、照会ワークロード全体のパフォーマンスがどれほど改善されるかの見積もりが示されます。 アドバイザーは、以下のステップでパフォーマンス改善の見積もりを計算します。
  1. 推奨された表変換すべてが実行され、それらの表にある索引がドロップされると想定します。
  2. 照会ワークロードの各ステートメントに関して次の 2 つの値の積を求めます。実行数 * ステートメント・コスト
  3. 各積を加算します。

以下の列は、このセクション上部にある表に表示されます。

行編成の表で、列編成に変換するように推奨されているか、行編成のままにすることを推奨されている表の名前。
作成者
表の作成者。
現在の編成
表が現在、行編成と列編成のどちらかを示します。
推奨される編成
表が、列編成に変換することが推奨されているか、そのままにすることを推奨されているかを示します。
警告
変換が推奨されている表に関して、変換結果として生じる可能性がある変更について記述します。
索引は削除されます。
列編成の表では索引は許可されません。
データ・パーティションは失われます。
データ・パーティションをリストアできるのは、表を行編成に再び変換する場合のみです。
ENFORCED RI 制約は「施行しない」に変わります。
誤ったデータが表に挿入される可能性があります。
ENFORCED CHECK 制約は「施行しない」に変わります。
誤ったデータが表に挿入される可能性があります。
表スペースが変更されます。
変換後、ワークロード表編成アドバイザーの設定で指定された表スペース、またはアドバイザーによって選択された表スペースに表が配置されます。 別の表スペースを使用するように変換スクリプトを変更できます。
MQT が削除されます。
MQT の削除後も、SQL ステートメントは表にあるデータに高速にアクセスできます。
カーディナリティー
表の行数。
表の参照数 (References to Table)
照会ワークロードにある SQL ステートメントが表を参照する回数。
累積合計コスト
照会ワークロードに含まれる SQL ステートメントによる、表にあるデータに対するそれぞれのアクセスにおける CPU コスト (timeron 単位) の合計。
影響を受けたステートメント数 (Affected Statements)
表を参照する、照会ワークロード内の SQL ステートメントの数。
検出結果
表で変換が推奨されている理由、または推奨されていない理由の説明。
表は既に列編成されています。
変換は不要です。
変換してもパフォーマンスは向上しません。
照会ワークロードのパフォーマンスは、表が列編成に変換されても向上しません。
変換するとパフォーマンスが向上します。
照会ワークロードのパフォーマンスは、表を列編成に変換すると向上します。
列編成の制限により変換は許可されません。
表タイプが MQT、宣言済みグローバル一時表、作成済みグローバル一時表の場合、列編成表に変換することはできません。

他にも制約があります。 例えば、LOB 列が含まれる表は変換できません。 また、MERGE ステートメントや、カーソルが宣言されたステートメントで使用される表も変換できません。 すべての制約について確認するには、DB2 10.5 for Linux, UNIX, and Windows 以降の資料を参照してください。

統計が欠落しているため、変換できません。
表には統計が欠落しているため、変換を確実に行えません。 ワークロード統計アドバイザーを実行して照会ワークロードの統計を収集し、アドバイザーが推奨する RUNSTATS ステートメントを実行してから、ワークロード表編成アドバイザーを再び実行してください。

以下の列は、「影響を受ける SQL ステートメント」表に表示されます。 この表には、リストされた表を列編成に変換すると影響を受ける、照会ワークロードに含まれる SQL ステートメントすべてがリストされます。

実行カウント
照会ワークロードで SQL ステートメントが実行される回数。
ウェイト
照会ワークロードにおけるステートメントの相対的な重み。 この値は、「変換前のコスト」列の値を実行カウントで乗算し、その結果を、照会ワークロードの「変換前のコスト」合計で割って計算します。
見積もりパフォーマンス向上 (Estimated Performance Gain)
変換の推奨が実装された場合に、選択した表にアクセスするステートメントのパフォーマンスがどれほど向上するかの見積もり。
例えば、見積もりパフォーマンス向上が 90.61% である場合、選択した表にアクセスするステートメントで必要な CPU 時間が 90.61% 減少するという意味です。
変換前のコスト
参照表を列編成表に変換する前のステートメントのコスト (timeron 単位)。
変換後のコスト
参照表を列編成表に変換した後のステートメントのコスト (timeron 単位)。
SQL ステートメント
ステートメントのテキスト。 ステートメントのすべてのテキストを確認するには、行を右クリックし、「SQL ステートメントの表示」を選択します。

次のタスク

照会ワークロードのパフォーマンスに関して見積もられた改善情報を評価し、使用しているパフォーマンス要件に合わせるのに役立つかどうかを調べます。 推奨情報に従うことにする場合、データベースをバックアップしてから、アドバイザーが生成したスクリプトを実行してください。 また、表の参照整合性制約が、列編成に変換する際に削除されることに注意してください。

フィードバック