ワークロード管理のヒストグラム
ヒストグラムはビンのコレクションです。ビンは、データの離散的範囲を収集するためのコンテナーです。 ヒストグラムは、様々なワークロード分析およびパフォーマンスのチューニング・タスクに役立ちます。 例えば、ヒストグラムを使用して値の配分を調べたり、範囲外にある値を識別したり、または平均および標準 偏差を計算したりすることができます。
Low Bin High Bin Count
0 1 0
1 2 0
2 3 0
3 5 0
5 8 0
8 12 0
12 19 0
19 29 10
29 44 15
44 68 45
68 103 156
103 158 65
158 241 23
241 369 0
369 562 0
562 858 0
858 1309 0
1309 1997 0
1997 3046 0
3046 4647 0
4647 7089 0
7089 10813 0
10813 16493 0
16493 25157 0
25157 38373 0
38373 58532 0
58532 89280 0
89280 136181 0
136181 207720 0
207720 316840 0
316840 483283 3
483283 737162 0
737162 1124409 0
1124409 1715085 0
1715085 2616055 0
2616055 3990325 0
3990325 6086529 0
6086529 9283913 0
9283913 14160950 0
14160950 21600000 0
21600000 Infinity 0
ヒストグラムを使用してワークロードの理解と特徴付けを向上させる方法の例については、 シナリオ: キャパシティー・プランニング情報が使用できない場合の Db2 ワークロード管理構成のチューニング および 例を参照してください。 Db2 ワークロード管理構成のヒストグラムからの平均および標準偏差を計算します。
マルチメンバー・データベース環境では、ヒストグラムはメンバーごとに収集されます。 ヒストグラムの各ビンの値の範囲はすべてのデータベース・メンバーで同じですが、ビンあたりのカウントはメンバーごとに固有の数になります。 ビンを使用して、メンバーごとに情報を分析することができます。 対応するビンのカウントを加算することによってすべてのデータベース・メンバーからのヒストグラムを結合し、この単一ヒストグラムを使用してデータの全体像を得ることもできます。これを、全体的な平均や標準偏差の計算などの作業に使用できます。
- ネストなしコーディネーター・アクティビティー存続時間 (サービス・クラス、ワークロード、またはワーク・クラスに適用されるワーク・アクションに対して、AGGREGATE ACTIVITY DATA BASE または AGGREGATE ACTIVITY DATA EXTENDED を指定した場合)
- ネストなしコーディネーター・アクティビティー実行時間 (サービス・クラス、ワークロード、またはワーク・クラスに適用されるワーク・アクションに対して、AGGREGATE ACTIVITY DATA BASE または AGGREGATE ACTIVITY DATA EXTENDED を指定した場合)
- ネストなしコーディネーター・アクティビティー・キュー時間 (サービス・クラス、ワークロード、またはワーク・クラスに適用されるワーク・アクションに対して、AGGREGATE ACTIVITY DATA BASE または AGGREGATE ACTIVITY DATA EXTENDED を指定した場合)
- 要求実行時間 (サービス・サブクラスに対して AGGREGATE REQUEST DATA BASE を指定した場合)。このヒストグラムは、ワークロードまたはワーク・クラスには適用されません。
- ネストなしアクティビティー到着間隔時間ヒストグラム (サービス・クラス、ワークロード、またはワーク・クラスに適用されるワーク・アクションに対して、AGGREGATE ACTIVITY DATA EXTENDED を指定した場合)
- ネストなし DML アクティビティー見積コスト (サービス・クラス、ワークロード、またはワーク・クラスに適用されるワーク・アクションに対して、AGGREGATE ACTIVITY DATA EXTENDED を指定した場合)
- 作業単位の存続期間 (サービス・クラスに対して、 AGGREGATE UNIT OF WORK DATA BASE を指定した場合)。
アクティビティー関連のすべてのヒストグラムに、完了したアクティビティー、取り消されたアクティビティー、拒否されたアクティビティーに関する情報が含まれます。
ヒストグラム・テンプレート
オプションでヒストグラム・テンプレートを指定することができます。このテンプレートを使用して、ビンの上限値など、特定のヒストグラムの外観を決定できます。 ヒストグラム・テンプレートは 単位なし オブジェクトです。つまり、事前定義された計測単位は割り当てられていません。 ヒストグラム・テンプレートが使用されるコンテキストに応じて、 計算単位がサービス・クラス、ワークロード、またはワーク・アクションの作成または変更時に、ヒストグラムに割り当てられます。 時間ベースのヒストグラム (例えば、ACTIVITY LIFETIME HISTOGRAM 節によって指定されるものなど) は、ミリ秒単位を使用します。 一方、コスト・ベースのヒストグラム (例えば、ACTIVITY ESTIMATED COST HISTOGRAM 節によって指定されるものなど) は、timeron 単位を使用します。
CREATE HISTOGRAM TEMPLATE TEMPLATE1 HIGH BIN VALUE 3000000
Low Bin High Bin
0 1
1 2
2 3
3 4
4 6
6 9
9 13
13 19
19 28
28 41
41 60
60 87
87 127
127 184
184 268
268 389
389 565
565 821
821 1192
1192 1732
1732 2514
2514 3651
3651 5300
5300 7696
7696 11173
11173 16222
16222 23553
23553 34196
34196 49649
49649 72084
72084 104657
104657 151948
151948 220609
220609 320297
320297 465030
465030 675163
675163 980250
980250 1423197
1423197 2066299
2066299 3000000
3000000 Infinity
サービス・サブクラス、ワークロード、またはワーク・アクションを作成または変更する時、適切な HISTOGRAM TEMPLATE キーワードを使用することにより、ヒストグラム・テンプレートを適用することができます。 ヒストグラム・テンプレートを指定しない場合、デフォルトのテンプレート SYSDEFAULTHISTOGRAM が使用されます。 AGGREGATE ACTIVITY DATA コレクションをオブジェクトが使用できるようにしていない場合、ヒストグラム・テンプレートは無視されます。
ALTER SERVICE CLASS MYSUBCLASS UNDER MYSUPERCLASS
ACTIVITY LIFETIME HISTOGRAM TEMPLATE TEMPLATE1
ALTER SERVICE CLASS ステートメントをコミットした後、MYSUBCLASS サービス・サブクラスに関して収集されるアクティビティー存続時間ヒストグラムのビンの上限値は、SYSDEFAULTHISTOGRAM ヒストグラム・テンプレートではなく TEMPLATE1 ヒストグラム・テンプレートによって決定されます。
別のヒストグラム・テンプレートを使用するようサービス・クラスまたはワークロードを変更する場合、あるいはヒストグラム・テンプレートを変更する場合、その変更は統計をリセットするまで有効になりません。
DROP HISTOGRAM TEMPLATE ステートメントを使用してヒストグラム・テンプレートをドロップすることができます。
SYSCAT.HISTOGRAMTEMPLATES ビューを照会することによって、ヒストグラム・テンプレートを表示できます。また、SYSCAT.HISTOGRAMTEMPLATEBINS ビューを照会することによって、対応するヒストグラム・テンプレートのビンの上限値を表示できます。 最初のビンの下限値は常に 0 です。他のビンでは、直前のビンの上限値が下限値になります。
例
次の例は、表関数を作成して、サブクラス全体にわたって合計することによってサービス・スーパークラス全体としての CoordActLifetime、CoordActExecTime、CoordActQueueTime、または CoordActEstCost ヒストグラムを計算します。 サブクラス全体にわたる合計は、実行中のアクティビティーが同一サービス・スーパークラス下の異なるサービス・サブクラスに再マップされる場合に役立ちます。 再マップは、サービス・クラス層と特殊なしきい値を使用してアクティビティーのリソースを動的に制御する優先度変更のシナリオで実行されることがあります。 この例は CoordActInterArrivalTime ヒストグラムには適用されません。サブクラスの CoordActInterArrivalTime ヒストグラムはそのサブクラスへの照会の到着から次の照会までの時間を計測するが、スーパークラスの CoordActInterArrivalTime ヒストグラムは自分のいずれかのサブクラスへの照会の到着から次の照会までの時間を計測するということが、加重平均の計算で考慮されないためです。
CONNECT TO SAMPLE
DROP FUNCTION histsuper
CREATE FUNCTION histsuper(superclass varchar(128),
histogram_type varchar(24))
RETURNS TABLE (statistics_timestamp timestamp,
bin_top integer,
number_in_bin integer,
graph varchar(60))
LANGUAGE SQL
READS SQL DATA
NO EXTERNAL ACTION
DETERMINISTIC
RETURN WITH HISTOGRAMS AS
(SELECT HISTOGRAM_TYPE,
substr(PARENTSERVICECLASSNAME,1,26) as SUPERCLASS,
STATISTICS_TIMESTAMP,
TOP as BIN_TOP,
sum(NUMBER_IN_BIN) as NUMBER_IN_BIN
FROM HISTOGRAMBIN_DB2STATISTICS H,
SYSCAT.SERVICECLASSES S
WHERE H.SERVICE_CLASS_ID = S.SERVICECLASSID
AND PARENTSERVICECLASSNAME = histsuper.superclass
AND HISTOGRAM_TYPE = histsuper.histogram_type
AND HISTOGRAM_TYPE IN ('CoordActLifetime', 'CoordActExecTime',
'CoordActQueueTime', 'CoordActEstCost')
GROUP BY HISTOGRAM_TYPE, PARENTSERVICECLASSNAME, STATISTICS_TIMESTAMP, TOP)
SELECT STATISTICS_TIMESTAMP,
BIN_TOP,
NUMBER_IN_BIN,
substr(repeat('#', cast(NUMBER_IN_BIN * 60 /
(SELECT CASE WHEN MAX(NUMBER_IN_BIN) = 0 THEN 1
ELSE MAX(NUMBER_IN_BIN) END FROM HISTOGRAMS) AS INTEGER)),1,60)
AS GRAPH FROM HISTOGRAMS
CONNECT RESET
出力は以下のようになります。
STATISTICS_TIMESTAMP BIN_TOP NUMBER_IN_BIN GRAPH
-------------------------- ----------- ------------- ------------------------------------------------------------
2008-11-06-14.47.08.833188 -1 0
2008-11-06-14.47.08.833188 1 1
2008-11-06-14.47.08.833188 2 1
2008-11-06-14.47.08.833188 3 2
2008-11-06-14.47.08.833188 5 4
2008-11-06-14.47.08.833188 8 7
2008-11-06-14.47.08.833188 12 15
2008-11-06-14.47.08.833188 19 29 #
2008-11-06-14.47.08.833188 29 41 #
2008-11-06-14.47.08.833188 44 67 ##
2008-11-06-14.47.08.833188 68 112 ###
2008-11-06-14.47.08.833188 103 228 #####
2008-11-06-14.47.08.833188 158 335 ########
2008-11-06-14.47.08.833188 241 723 #################
2008-11-06-14.47.08.833188 369 1289 ###############################
2008-11-06-14.47.08.833188 562 1890 #############################################
2008-11-06-14.47.08.833188 858 2484 ############################################################
2008-11-06-14.47.08.833188 1309 1943 ###############################################
2008-11-06-14.47.08.833188 1997 478 ###########
2008-11-06-14.47.08.833188 3046 221 #####
2008-11-06-14.47.08.833188 4647 29 #
2008-11-06-14.47.08.833188 7089 7
2008-11-06-14.47.08.833188 10813 0
2008-11-06-14.47.08.833188 16493 2
2008-11-06-14.47.08.833188 25157 0
2008-11-06-14.47.08.833188 38373 1
2008-11-06-14.47.08.833188 58532 0
2008-11-06-14.47.08.833188 89280 0
2008-11-06-14.47.08.833188 136181 0
2008-11-06-14.47.08.833188 207720 0
2008-11-06-14.47.08.833188 316840 0
2008-11-06-14.47.08.833188 483283 0
2008-11-06-14.47.08.833188 737162 0
2008-11-06-14.47.08.833188 1124409 0
2008-11-06-14.47.08.833188 1715085 0
2008-11-06-14.47.08.833188 2616055 0
2008-11-06-14.47.08.833188 3990325 0
2008-11-06-14.47.08.833188 6086529 0
2008-11-06-14.47.08.833188 9283913 0
2008-11-06-14.47.08.833188 14160950 0
2008-11-06-14.47.08.833188 21600000 0
41 record(s) selected.