ワークロード表編成アドバイザーは、行編成表を列編成表に変換することを推奨します。
このタスクについて
アドバイザーは、照会ワークロードにあるステートメントが参照する表すべてを調べます。
提示される推奨情報によって、照会ワークロード全体のパフォーマンス向上が最高になる見積もりが得られます。
アドバイザーは分析結果と根拠を示し、変換が推奨されている表と、推奨されていない表が表示されます。
表のカーディナリティー、照会ワークロードでそれらを参照するステートメント数、表を参照するステートメントを実行する累積コスト、ステートメント自体などの情報を確認できます。
また、表を変換するために必要な変更を実装するための DDL を表示および保存できます。
ヒント: ワークロード統計アドバイザーまたはワークロード索引アドバイザー (あるいは両方) からの推奨ではパフォーマンスが十分に改善されないことが分かった場合にのみ、このアドバイザーを実行してください。
統計の収集、または索引の作成/変更 (あるいはその両方) を行うと、照会ワークロードに関して必要なパフォーマンスが得られる可能性があります。
また、ワークロード表編成アドバイザーは、正しい統計に基づいて推奨情報を生成します。
手順
列編成表への変換のための推奨情報を生成し、それに基づいて対応する方法:
- チューニングする SQL ステートメントのワークロードを作成します。
- チューニングする SQL ステートメントをキャプチャーします。 DB2 for Linux, UNIX, and Windows で実行する照会ワークロードを作成するための SQL ステートメントをキャプチャーできる場所を参照してください。
- 「すべてをワークロードへ保存」ボタンをクリックし、プロンプトが表示されたら照会ワークロードの名前と説明を指定します。
「管理」セクションの「ワークロードの管理およびチューニング」ページが開きます。新規の照会ワークロードが、このページの表に表示されます。照会ワークロードの状況は CAPTURED です。
- 照会ワークロードでワークロード統計アドバイザーを 2 度実行し、その都度、推奨情報を実装します。
- ワークフロー・アシスタントの「管理」セクションで、照会ワークロードを選択し、「アドバイザーの起動」ボタンをクリックします。
- オプション: グローバル設定をオーバーライドする、このアドバイザーの設定値を設定します。
「起動」セクションの左側にある「アドバイザー・オプションの設定」を選択します。
その後、「表編成」タブを選択します。
- ワークフロー・アシスタントの左側で、「ワークロード・アドバイザーの実行」を選択します。
- 「ワークロード・アドバイザーの実行前に EXPLAIN 情報を再収集する」オプションを選択します。
- 「実行する項目の選択」をクリックします。
- 「表編成」を選択し、「OK」をクリックします。 ワークフロー・アシスタントの「確認」セクションが「ワークロード・アドバイザーの推奨情報の確認」ページに開きます。
推奨情報がある場合、「表編成」タブが表示されます。
- 「表編成」タブをクリックします。
タスクの結果
このセクションには、列編成にマイグレーションすることが推奨される表、および推奨されない表が表示されます。
セクション上部には、照会ワークロード全体のパフォーマンスがどれほど改善されるかの見積もりが示されます。
アドバイザーは、以下のステップでパフォーマンス改善の見積もりを計算します。
- 推奨された表変換すべてが実行され、それらの表にある索引がドロップされると想定します。
- 照会ワークロードの各ステートメントに関して次の 2 つの値の積を求めます。実行数 * ステートメント・コスト
- 各積を加算します。
以下の列は、このセクション上部にある表に表示されます。
- 表
- 行編成の表で、列編成に変換するように推奨されているか、行編成のままにすることを推奨されている表の名前。
- 作成者
- 表の作成者。
- 現在の編成
- 表が現在、行編成と列編成のどちらかを示します。
- 推奨される編成
- 表が、列編成に変換することが推奨されているか、そのままにすることを推奨されているかを示します。
- 警告
- 変換が推奨されている表に関して、変換結果として生じる可能性がある変更について記述します。
- 索引は削除されます。
- 列編成の表では索引は許可されません。
- データ・パーティションは失われます。
- データ・パーティションをリストアできるのは、表を行編成に再び変換する場合のみです。
- 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 ステートメントの表示」を選択します。
次のタスク
照会ワークロードのパフォーマンスに関して見積もられた改善情報を評価し、使用しているパフォーマンス要件に合わせるのに役立つかどうかを調べます。
推奨情報に従うことにする場合、データベースをバックアップしてから、アドバイザーが生成したスクリプトを実行してください。
また、表の参照整合性制約が、列編成に変換する際に削除されることに注意してください。