DB2 Workload Manager Histograms

92
DB2 9.5 Monitoring Performance Tuning and Problem Determination

Transcript of DB2 Workload Manager Histograms

Page 1: DB2 Workload Manager Histograms

DB2 9.5 Monitoring

Performance Tuning and Problem Determination

Page 2: DB2 Workload Manager Histograms

Agenda• What I’m going to talk about

– Monitoring features new to DB2 9.5– Measuring against SLAs so that the system can

be tuned to achieve them– Using new monitoring features for problem

determination• What I’m not going to talk about

– Monitoring features that existed prior to DB2 9.5– Tuning individual queries, bufferpool hit ratios,

etc.

Page 3: DB2 Workload Manager Histograms

New DB2 9.5 Monitoring Features• Types of Information

– Statistics• Counters• High watermarks•Histograms

– Activities• Types of Presentation

– Table functions– Event monitors

Page 4: DB2 Workload Manager Histograms

The Bell Curve

Page 5: DB2 Workload Manager Histograms

The Bell Curve in Height

Page 6: DB2 Workload Manager Histograms

The Power Law Curve

Page 7: DB2 Workload Manager Histograms

If Height Were A Power Law “If the average

height of two hundred men was five foot ten; the most frequent (or modal) height would be held by dozens of men who were each only a foot tall …”

Page 8: DB2 Workload Manager Histograms

If Height Were A Power Law “…the median height

would be two feet tall (a hundred men shorter than two feet, and a hundred taller)…”

Page 9: DB2 Workload Manager Histograms

If Height Were A Power Law “Most important, in

such a distribution, the five tallest men would be 40, 50, 66, 100, and 200 feet tall respectively.”

– Clay Shirky, Here Comes Everybody

Page 10: DB2 Workload Manager Histograms

“When we encounter a system like a database where there is no such thing as a representative query, the habits of mind that come from thinking about averages are not merely useless, they’re harmful.”

Page 11: DB2 Workload Manager Histograms

Drawing A Histogram – Step 1

Page 12: DB2 Workload Manager Histograms

Drawing A Histogram – Step 2

Page 13: DB2 Workload Manager Histograms

Query Response Time1 0.53

2 1.21

3 1.24

4 1.36

5 1.63

6 2.41

7 2.48

8 2.77

9 3.28

10 3.67

11 4.34

12 4.53

13 4.70

14 4.73

15 4.79

16 5.38

17 5.72

18 5.75

19 5.90

20 6.20

Page 14: DB2 Workload Manager Histograms

Bin Range Frequency[ 0 - 1 ]

( 1 - 2 ]

( 2 - 3 ]

( 3 - 4 ]

( 4 - 5 ]

( 5 - 6 ]

( 6 - 7 ]

Query Response Time1 0.53

2 1.21

3 1.24

4 1.36

5 1.63

6 2.41

7 2.48

8 2.77

9 3.28

10 3.67

11 4.34

12 4.53

13 4.70

14 4.73

15 4.79

16 5.38

17 5.72

18 5.75

19 5.90

20 6.20

Page 15: DB2 Workload Manager Histograms

Query Response Time1 0.53

2 1.21

3 1.24

4 1.36

5 1.63

6 2.41

7 2.48

8 2.77

9 3.28

10 3.67

11 4.34

12 4.53

13 4.70

14 4.73

15 4.79

16 5.38

17 5.72

18 5.75

19 5.90

20 6.20

Bin Range Frequency[ 0 - 1 ] 1

( 1 - 2 ]

( 2 - 3 ]

( 3 - 4 ]

( 4 - 5 ]

( 5 - 6 ]

( 6 - 7 ]

Page 16: DB2 Workload Manager Histograms

Bin Range Frequency[ 0 - 1 ] 1

( 1 - 2 ] 4

( 2 - 3 ]

( 3 - 4 ]

( 4 - 5 ]

( 5 - 6 ]

( 6 - 7 ]

Query Response Time1 0.53

2 1.21

3 1.24

4 1.36

5 1.63

6 2.41

7 2.48

8 2.77

9 3.28

10 3.67

11 4.34

12 4.53

13 4.70

14 4.73

15 4.79

16 5.38

17 5.72

18 5.75

19 5.90

20 6.20

Page 17: DB2 Workload Manager Histograms

Bin Range Frequency[ 0 - 1 ] 1

( 1 - 2 ] 4

( 2 - 3 ] 3

( 3 - 4 ]

( 4 - 5 ]

( 5 - 6 ]

( 6 - 7 ]

Query Response Time1 0.53

2 1.21

3 1.24

4 1.36

5 1.63

6 2.41

7 2.48

8 2.77

9 3.28

10 3.67

11 4.34

12 4.53

13 4.70

14 4.73

15 4.79

16 5.38

17 5.72

18 5.75

19 5.90

20 6.20

Page 18: DB2 Workload Manager Histograms

Bin Range Frequency[ 0 - 1 ] 1

( 1 - 2 ] 4

( 2 - 3 ] 3

( 3 - 4 ] 2

( 4 - 5 ] 5

( 5 - 6 ] 4

( 6 - 7 ] 1

Query Response Time1 0.53

2 1.21

3 1.24

4 1.36

5 1.63

6 2.41

7 2.48

8 2.77

9 3.28

10 3.67

11 4.34

12 4.53

13 4.70

14 4.73

15 4.79

16 5.38

17 5.72

18 5.75

19 5.90

20 6.20

Page 19: DB2 Workload Manager Histograms

Bin Range Frequency

[ 0 - 1 ] 1

( 1 - 2 ] 4

( 2 - 3 ] 3

( 3 - 4 ] 2

( 4 - 5 ] 5

( 5 - 6 ] 4

( 6 - 7 ] 1

Page 20: DB2 Workload Manager Histograms

Why Are Histograms Useful?• Reveal hidden distribution details• Detect outliers• Can be aggregated

Page 21: DB2 Workload Manager Histograms

Reveal Hidden Distribution Details

• Month 1 - all users are happy– Average response time: 19 seconds– Standard deviation: 6 seconds

Page 22: DB2 Workload Manager Histograms

Reveal Hidden Distribution Details

• Month 2 - some users are complaining– Average response time: 19 seconds– Standard deviation: 6 seconds

Page 23: DB2 Workload Manager Histograms

Reveal Hidden Distribution Details

• Month 1 - all users are happy– Average response time: 19 seconds– Standard deviation: 6 seconds

Page 24: DB2 Workload Manager Histograms

Reveal Hidden Distribution Details

• Month 2 - some users are complaining– Average response time: 19 seconds– Standard deviation: 6 seconds

Page 25: DB2 Workload Manager Histograms

Outliers

Page 26: DB2 Workload Manager Histograms

Detecting Outliers• Sometimes, outliers have a small, even

negligible effect on the average– Adding the heaviest land animal on earth to a group

of 1000 people changes the average weight by less than 10%, that is, little more than 10 pounds.

Page 27: DB2 Workload Manager Histograms

Detecting Outliers• Sometimes, outliers have a significant effect

– Adding the richest man on earth to a group of 1000 people changes the average net worth by 40,000%, that is, tens of millions of dollars.

Page 28: DB2 Workload Manager Histograms

Net Worth Histogram

Page 29: DB2 Workload Manager Histograms

Net Worth Histogram

Page 30: DB2 Workload Manager Histograms

Aggregating Histograms• Aggregate short periods of time into

longer periods– Daily response times for day-to-day

decision-making– Monthly reports

Page 31: DB2 Workload Manager Histograms

Aggregating Averages In Innumeracy, John

Allen Paulos gives an example of a sports anomaly involving batting averages.

Page 32: DB2 Workload Manager Histograms

Batting Averages “Babe Ruth hits for

a higher batting average for the first half of the season and hits for a higher batting average in the second half of the season as well, …”

Page 33: DB2 Workload Manager Histograms

Batting Averages• “… but Lou Gehrig

ends up with a higher batting average for the season as a whole.”

Page 34: DB2 Workload Manager Histograms

Batting AveragesPlayer Half Average At Bats

Babe Ruth First .300 200

Second .400 100

Lou Gehrig First .290 100

Second .390 200

Page 35: DB2 Workload Manager Histograms

Batting AveragesPlayer Half Average At Bats Average × At

Bats

Babe Ruth First .300 200 60.0

Second .400 100

Lou Gehrig First .290 100

Second .390 200

Page 36: DB2 Workload Manager Histograms

Batting AveragesPlayer Half Average At Bats Average × At

Bats

Babe Ruth First .300 200 60.0

Second .400 100 40.0

Lou Gehrig First .290 100

Second .390 200

Page 37: DB2 Workload Manager Histograms

Batting AveragesPlayer Half Average At Bats Average × At

Bats

Babe Ruth First .300 200 60.0

Second .400 100 40.0

Lou Gehrig First .290 100 29.0

Second .390 200 78.0

Page 38: DB2 Workload Manager Histograms

Batting AveragesPlayer Half Average At Bats Average × At

Bats

Babe Ruth First .300 200 60.0

Second .400 100 40.0

300 100.0

Lou Gehrig First .290 100 29.0

Second .390 200 78.0

Page 39: DB2 Workload Manager Histograms

Batting AveragesPlayer Half Average At Bats Average × At

Bats

Babe Ruth First .300 200 60.0

Second .400 100 40.0

300 100.0

Lou Gehrig First .290 100 29.0

Second .390 200 78.0

300 107.00

Page 40: DB2 Workload Manager Histograms

Range(second

s)

January

[ 0 - 1 ] 438

( 1 - 2 ] 1350

( 2 - 3 ] 3238

( 3 - 4 ] 6049

( 4 - 5 ] 8802

( 5 - 6 ] 9974

( 6 - 7 ] 8802

( 7 - 8 ] 6049

( 8 - 9 ] 3238

( 9 - 10 ] 1350

( 10 - 11 ] 438

( 11 - 12 ] 0

( 12 - 13 ] 0

( 13 - 14 ] 0

( 14 - 15 ] 0

( 15 - 16 ] 0

( 16 - 17 ] 0

( 17 - 18 ] 0

( 18 - 19 ] 0

( 19 - 20 ] 0

( 20 - 21 ] 0

Page 41: DB2 Workload Manager Histograms

Range(second

s)

January February

Jan + Feb

[ 0 - 1 ] 438 0 438

( 1 - 2 ] 1350 0 1350

( 2 - 3 ] 3238 0 3238

( 3 - 4 ] 6049 0 6049

( 4 - 5 ] 8802 0 8802

( 5 - 6 ] 9974 0 9974

( 6 - 7 ] 8802 0 8802

( 7 - 8 ] 6049 0 6049

( 8 - 9 ] 3238 0 3238

( 9 - 10 ] 1350 0 1350

( 10 - 11 ] 438 613 1051

( 11 - 12 ] 0 1890 1890

( 12 - 13 ] 0 4533 4533

( 13 - 14 ] 0 8469 8469

( 14 - 15 ] 0 12322 12322

( 15 - 16 ] 0 13963 13963

( 16 - 17 ] 0 12322 12322

( 17 - 18 ] 0 8469 8469

( 18 - 19 ] 0 4533 4533

( 19 - 20 ] 0 1890 1890

( 20 - 21 ] 0 613 613

Page 42: DB2 Workload Manager Histograms

Range(second

s)

January February

March First Quarter

[ 0 - 1 ] 438 0 0 438

( 1 - 2 ] 1350 0 0 1350

( 2 - 3 ] 3238 0 0 3238

( 3 - 4 ] 6049 0 0 6049

( 4 - 5 ] 8802 0 0 8802

( 5 - 6 ] 9974 0 526 10500

( 6 - 7 ] 8802 0 1620 10422

( 7 - 8 ] 6049 0 3886 9935

( 8 - 9 ] 3238 0 7259 10497

( 9 - 10 ] 1350 0 10562 11912

( 10 - 11 ] 438 613 11968 13019

( 11 - 12 ] 0 1890 10562 12452

( 12 - 13 ] 0 4533 7259 11792

( 13 - 14 ] 0 8469 3886 12355

( 14 - 15 ] 0 12322 1620 13942

( 15 - 16 ] 0 13963 526 14489

( 16 - 17 ] 0 12322 0 12322

( 17 - 18 ] 0 8469 0 8469

( 18 - 19 ] 0 4533 0 4533

( 19 - 20 ] 0 1890 0 1890

( 20 - 21 ] 0 613 0 613

Page 43: DB2 Workload Manager Histograms

DB2 WLM Histograms• Activity

– Execution time– Queue time– Lifetime– Inter-arrival time– Estimated cost

• Request– Execution time

Page 44: DB2 Workload Manager Histograms

Lifecycle Of An Activity

Page 45: DB2 Workload Manager Histograms

Inter-arrival Times

Page 46: DB2 Workload Manager Histograms

Inter-arrival Times

Page 47: DB2 Workload Manager Histograms
Page 48: DB2 Workload Manager Histograms
Page 49: DB2 Workload Manager Histograms
Page 50: DB2 Workload Manager Histograms
Page 51: DB2 Workload Manager Histograms
Page 52: DB2 Workload Manager Histograms
Page 53: DB2 Workload Manager Histograms
Page 54: DB2 Workload Manager Histograms

How Much Data Is Enough?

Page 55: DB2 Workload Manager Histograms

How Much Data Is Enough?

Page 56: DB2 Workload Manager Histograms

How Much Data Is Enough?

Page 57: DB2 Workload Manager Histograms

How To Collect DB2 Histograms

• Activity execution time• Activity queue time• Activity lifetime

alter service class MANAGERS under MARKETING collect aggregate activity data BASE

alter work action set MAPLOADS alter work action MAPLOADS collect aggregate activity data BASE

Page 58: DB2 Workload Manager Histograms

How To Collect DB2 Histograms

• Activity execution time• Activity queue time• Activity lifetime• Activity inter-arrival time• DML activity estimated cost

alter service class MANAGERS under MARKETING collect aggregate activity data EXTENDED

alter work action set MAPLOADS alter work action MAPLOADS collect aggregate activity data EXTENDED

Page 59: DB2 Workload Manager Histograms

How To Collect DB2 Histograms

• Request execution time

alter service class MANAGERS under MARKETING collect aggregate request data BASE

Page 60: DB2 Workload Manager Histograms

How To Collect DB2 Histograms

• An event monitor must be active to receive the data and write it to a table, file or pipe

create event monitor DB2STATISTICSfor statistics write to table

set event monitor DB2STATISTICS state 1

Page 61: DB2 Workload Manager Histograms

Triggering A Collection• WLM_COLLECT_INT database configuration parameter

– To collect once every 24 hours (1440 minutes)

update db cfg using WLM_COLLECT_INT 1440

• WLM_COLLECT_STATS stored procedure– To collect immediately

call wlm_collect_stats()

Page 62: DB2 Workload Manager Histograms

The HISTOGRAMBIN TableDESCRIBE TABLE HISTOGRAMBIN_DB2STATISTICS

                           Data type                     ColumnColumn name                     schema    Data type name      Length     Scale Nulls------------------------------- --------- ------------------- ---------- ----- -----BIN_ID                          SYSIBM    INTEGER                      4     0 NoBOTTOM                          SYSIBM    BIGINT                       8     0 NoHISTOGRAM_TYPE                  SYSIBM    VARCHAR                     64     0 NoNUMBER_IN_BIN                   SYSIBM    BIGINT                       8     0 NoSERVICE_CLASS_ID                SYSIBM    INTEGER                      4     0 NoSTATISTICS_TIMESTAMP            SYSIBM    TIMESTAMP                   10     0 NoTOP                             SYSIBM    BIGINT                       8     0 NoWORK_ACTION_SET_ID              SYSIBM    INTEGER                      4     0 NoWORK_CLASS_ID                   SYSIBM    INTEGER                      4     0 No

  9 record(s) selected.

Page 63: DB2 Workload Manager Histograms

The HISTOGRAMBIN TableDESCRIBE TABLE HISTOGRAMBIN_DB2STATISTICS

                           Data type                     ColumnColumn name                     schema    Data type name      Length     Scale Nulls------------------------------- --------- ------------------- ---------- ----- -----BIN_ID                          SYSIBM    INTEGER                      4     0 NoBOTTOM                          SYSIBM    BIGINT                       8     0 NoHISTOGRAM_TYPE                  SYSIBM    VARCHAR                     64     0 NoNUMBER_IN_BIN                   SYSIBM    BIGINT                       8     0 NoSERVICE_CLASS_ID                SYSIBM    INTEGER                      4     0 NoSTATISTICS_TIMESTAMP            SYSIBM    TIMESTAMP                   10     0 NoTOP                             SYSIBM    BIGINT                       8     0 NoWORK_ACTION_SET_ID              SYSIBM    INTEGER                      4     0 NoWORK_CLASS_ID                   SYSIBM    INTEGER                      4     0 No

  9 record(s) selected.

Page 64: DB2 Workload Manager Histograms

The HISTOGRAMBIN TableDESCRIBE TABLE HISTOGRAMBIN_DB2STATISTICS

                           Data type                     ColumnColumn name                     schema    Data type name      Length     Scale Nulls------------------------------- --------- ------------------- ---------- ----- -----BIN_ID                          SYSIBM    INTEGER                      4     0 NoBOTTOM                          SYSIBM    BIGINT                       8     0 NoHISTOGRAM_TYPE                  SYSIBM    VARCHAR                     64     0 NoNUMBER_IN_BIN                   SYSIBM    BIGINT                       8     0 NoSERVICE_CLASS_ID                SYSIBM    INTEGER                      4     0 NoSTATISTICS_TIMESTAMP            SYSIBM    TIMESTAMP                   10     0 NoTOP                             SYSIBM    BIGINT                       8     0 NoWORK_ACTION_SET_ID              SYSIBM    INTEGER                      4     0 NoWORK_CLASS_ID                   SYSIBM    INTEGER                      4     0 No

  9 record(s) selected.

Page 65: DB2 Workload Manager Histograms

The HISTOGRAMBIN TableDESCRIBE TABLE HISTOGRAMBIN_DB2STATISTICS

                           Data type                     ColumnColumn name                     schema    Data type name      Length     Scale Nulls------------------------------- --------- ------------------- ---------- ----- -----BIN_ID                          SYSIBM    INTEGER                      4     0 NoBOTTOM                          SYSIBM    BIGINT                       8     0 NoHISTOGRAM_TYPE                  SYSIBM    VARCHAR                     64     0 NoNUMBER_IN_BIN                   SYSIBM    BIGINT                       8     0 NoSERVICE_CLASS_ID                SYSIBM    INTEGER                      4     0 NoSTATISTICS_TIMESTAMP            SYSIBM    TIMESTAMP                   10     0 NoTOP                             SYSIBM    BIGINT                       8     0 NoWORK_ACTION_SET_ID              SYSIBM    INTEGER                      4     0 NoWORK_CLASS_ID                   SYSIBM    INTEGER                      4     0 No

  9 record(s) selected.

Page 66: DB2 Workload Manager Histograms

The HISTOGRAMBIN TableDESCRIBE TABLE HISTOGRAMBIN_DB2STATISTICS

                           Data type                     ColumnColumn name                     schema    Data type name      Length     Scale Nulls------------------------------- --------- ------------------- ---------- ----- -----BIN_ID                          SYSIBM    INTEGER                      4     0 NoBOTTOM                          SYSIBM    BIGINT                       8     0 NoHISTOGRAM_TYPE                  SYSIBM    VARCHAR                     64     0 NoNUMBER_IN_BIN                   SYSIBM    BIGINT                       8     0 NoSERVICE_CLASS_ID                SYSIBM    INTEGER                      4     0 NoSTATISTICS_TIMESTAMP            SYSIBM    TIMESTAMP                   10     0 NoTOP                             SYSIBM    BIGINT                       8     0 NoWORK_ACTION_SET_ID              SYSIBM    INTEGER                      4     0 NoWORK_CLASS_ID                   SYSIBM    INTEGER                      4     0 No

  9 record(s) selected.

Page 67: DB2 Workload Manager Histograms

Visualizing A Histogram SELECT TOP, NUMBER_IN_BIN FROM HISTOGRAMBIN_DB2STATISTICS

Page 68: DB2 Workload Manager Histograms

Visualizing A Histogram SELECT TOP, NUMBER_IN_BIN FROM HISTOGRAMBIN_DB2STATISTICS WHERE SERVICE_CLASS_ID = 13

Page 69: DB2 Workload Manager Histograms

Visualizing A Histogram SELECT TOP, NUMBER_IN_BIN FROM HISTOGRAMBIN_DB2STATISTICS WHERE SERVICE_CLASS_ID = 13   AND HISTOGRAM_TYPE = ‘CoordActLifetime’

Page 70: DB2 Workload Manager Histograms

Visualizing A Histogram SELECT TOP, NUMBER_IN_BIN FROM HISTOGRAMBIN_DB2STATISTICS WHERE SERVICE_CLASS_ID = 13   AND HISTOGRAM_TYPE = ‘CoordActLifetime’ AND STATISTICS_TIMESTAMP = ‘2009-03-12-14.30.00.000000’

Page 71: DB2 Workload Manager Histograms

Visualizing A Histogram SELECT TOP, NUMBER_IN_BIN FROM HISTOGRAMBIN_DB2STATISTICS WHERE SERVICE_CLASS_ID = 13   AND HISTOGRAM_TYPE = ‘CoordActLifetime’ AND STATISTICS_TIMESTAMP = ‘2009-03-12-14.30.00.000000’ ORDER BY TOP

Page 72: DB2 Workload Manager Histograms

Visualizing A Histogram SELECT TOP, NUMBER_IN_BIN FROM HISTOGRAMBIN_DB2STATISTICS WHERE SERVICE_CLASS_ID = 13   AND HISTOGRAM_TYPE = ‘CoordActLifetime’ AND STATISTICS_TIMESTAMP = ‘2009-03-12-14.30.00.000000’ ORDER BY TOP

TOP         NUMBER_IN_BIN----------- -------------         -1 0          1 1          2 6 3 21 5 179 8 298 12 141 19 47         29 5      44 2 68             0

Page 73: DB2 Workload Manager Histograms

Visualizing A HistogramWITH HISTOGRAMS AS(SELECT TOP, NUMBER_IN_BIN FROM HISTOGRAMBIN_DB2STATISTICS WHERE SERVICE_CLASS_ID = 13   AND HISTOGRAM_TYPE = ‘CoordActLifetime’ AND STATISTICS_TIMESTAMP = ‘2009-03-12-14.30.00.000000’) SELECT TOP, NUMBER_IN_BIN FROM HISTOGRAMS ORDER BY TOP

Page 74: DB2 Workload Manager Histograms

Visualizing A HistogramWITH HISTOGRAMS AS(SELECT TOP, NUMBER_IN_BIN FROM HISTOGRAMBIN_DB2STATISTICS WHERE SERVICE_CLASS_ID = 13   AND HISTOGRAM_TYPE = ‘CoordActLifetime’ AND STATISTICS_TIMESTAMP = ‘2009-03-12-14.30.00.000000’) SELECT TOP, NUMBER_IN_BIN / (SELECT MAX(NUMBER_IN_BIN) FROM HISTOGRAMS) FROM HISTOGRAMS ORDER BY TOP

Page 75: DB2 Workload Manager Histograms

Visualizing A HistogramWITH HISTOGRAMS AS(SELECT TOP, NUMBER_IN_BIN FROM HISTOGRAMBIN_DB2STATISTICS WHERE SERVICE_CLASS_ID = 13   AND HISTOGRAM_TYPE = ‘CoordActLifetime’ AND STATISTICS_TIMESTAMP = ‘2009-03-12-14.30.00.000000’) SELECT TOP, CAST(60 * NUMBER_IN_BIN / (SELECT MAX(NUMBER_IN_BIN) FROM HISTOGRAMS) AS INTEGER) FROM HISTOGRAMS ORDER BY TOP

Page 76: DB2 Workload Manager Histograms

Visualizing A HistogramWITH HISTOGRAMS AS(SELECT TOP, NUMBER_IN_BIN FROM HISTOGRAMBIN_DB2STATISTICS WHERE SERVICE_CLASS_ID = 13   AND HISTOGRAM_TYPE = ‘CoordActLifetime’ AND STATISTICS_TIMESTAMP = ‘2009-03-12-14.30.00.000000’) SELECT TOP, SUBSTR(REPEAT(‘#’, CAST(60 * NUMBER_IN_BIN / (SELECT MAX(NUMBER_IN_BIN) FROM HISTOGRAMS) AS INTEGER)), 1, 60) AS GRAPH FROM HISTOGRAMS ORDER BY TOP

Page 77: DB2 Workload Manager Histograms

Visualizing A HistogramWITH HISTOGRAMS AS(SELECT TOP, NUMBER_IN_BIN FROM HISTOGRAMBIN_DB2STATISTICS WHERE SERVICE_CLASS_ID = 13   AND HISTOGRAM_TYPE = ‘CoordActLifetime’ AND STATISTICS_TIMESTAMP = ‘2009-03-12-14.30.00.000000’) SELECT TOP, SUBSTR(REPEAT(‘#’, CAST(60 * NUMBER_IN_BIN / (SELECT MAX(NUMBER_IN_BIN) FROM HISTOGRAMS) AS INTEGER)), 1, 60) AS GRAPH FROM HISTOGRAMS ORDER BY TOP

TOP         GRAPH----------- ------------------------------------------------------------ -1 1 2 # 3 #### 5 ####################################

Page 78: DB2 Workload Manager Histograms

Visualizing A HistogramTOP         GRAPH----------- ------------------------------------------------------------ -1 1 2 # 3 #### 5 #################################### 8 ############################################################ 12 ############################ 19 ######### 29 # 44 68 103 158 241 369 562 858 1309 1997

Page 79: DB2 Workload Manager Histograms

Controlling The Range Of A Histogram

create histogram template LIFETIME_TEMPLATE high bin value 44

alter service class SYSDEFAULTSUBCLASSunder SYSDEFAULTUSERCLASSactivity lifetime histogram template LIFETIME_TEMPLATE

call wlm_collect_stats

• Note: You must call wlm_collect_stats after changing a histogram template for the change to take effect.

Page 80: DB2 Workload Manager Histograms

Controlling The Range Of A Histogram

• Duplicates now occur because bin sizes grow exponentially and are rounded to an integer.

• Modify the query to group by top and change number_in_bin to sum(number_in_bin) to eliminate these duplicates – however, number of bins is reduced

Page 81: DB2 Workload Manager Histograms

Controlling The Range Of A Histogram

SELECT TOP, SUM(NUMBER_IN_BIN) NUMBER_IN_BIN FROM HISTOGRAMBIN_DB2STATISTICS WHERE SERVICE_CLASS_ID = 13   AND HISTOGRAM_TYPE = ‘CoordActLifetime’ AND STATISTICS_TIMESTAMP = ‘2009-03-12-14.30.00.000000’ GROUP BY TOP ORDER BY TOP

TOP         NUMBER_IN_BIN----------- -------------         -1 0          1 1          2 6 3 21 4 89 5 90 6 91 7 112          8 96       9 82

Page 82: DB2 Workload Manager Histograms

The Purpose Of The Infinite Bin• The infinite bin, or catch-all bin, is the bin

whose TOP is -1• Alerts you when the template fails to cover

the entire range of the data• To choose a better high bin value:

– For lifetime, use COORD_ACT_LIFETIME_TOP high watermark

– For estimated cost, use COST_ESTIMATE_TOP high watermark

Page 83: DB2 Workload Manager Histograms

Why Do Bins Grow Exponentially?

Page 84: DB2 Workload Manager Histograms

6 hours40 bins

= 9 minutes/bin

Page 85: DB2 Workload Manager Histograms

ServiceLevel

Agreements

Page 86: DB2 Workload Manager Histograms

Measuring For An SLA• The activity lifetime histogram provides an easy

way to measure against such an SLA. Here’s how:– Convert NUMBER_IN_BIN into a percentage– Convert the percentage into a cumulative percentage

Page 87: DB2 Workload Manager Histograms

Measuring For An SLAWITH HISTOGRAMS AS(SELECT TOP, NUMBER_IN_BIN FROM HISTOGRAMBIN_DB2STATISTICS WHERE SERVICE_CLASS_ID = 13   AND HISTOGRAM_TYPE = ‘CoordActLifetime’ AND STATISTICS_TIMESTAMP = ‘2009-03-12-14.30.00.000000’)SELECT TOP, NUMBER_IN_BINFROM HISTOGRAMSORDER BY TOP

Page 88: DB2 Workload Manager Histograms

Measuring For An SLAWITH HISTOGRAMS AS(SELECT TOP, NUMBER_IN_BIN FROM HISTOGRAMBIN_DB2STATISTICS WHERE SERVICE_CLASS_ID = 13   AND HISTOGRAM_TYPE = ‘CoordActLifetime’ AND STATISTICS_TIMESTAMP = ‘2009-03-12-14.30.00.000000’)SELECT TOP, CAST(100 * NUMBER_IN_BIN / (SELECT CAST(SUM(NUMBER_IN_BIN) AS DOUBLE) FROM HISTOGRAMS) AS DECIMAL(9,2)) PERCENTAGE_IN_BINFROM HISTOGRAMSORDER BY TOP

Page 89: DB2 Workload Manager Histograms

Measuring For An SLAWITH HISTOGRAMS AS(SELECT TOP, NUMBER_IN_BIN FROM HISTOGRAMBIN_DB2STATISTICS WHERE SERVICE_CLASS_ID = 13   AND HISTOGRAM_TYPE = ‘CoordActLifetime’ AND STATISTICS_TIMESTAMP = ‘2009-03-12-14.30.00.000000’)SELECT TOP, CAST(100 * NUMBER_IN_BIN / (SELECT CAST(SUM(NUMBER_IN_BIN) AS DOUBLE) FROM HISTOGRAMS) AS DECIMAL(9,2)) PERCENTAGE_IN_BIN CAST((SELECT 100 * SUM(NUMBER_IN_BIN) FROM HISTOGRAM_BIN WHERE TOP <= OUTERHIST.TOP) / (SELECT CAST(SUM(NUMBER_IN_BIN) AS DOUBLE) FROM HISTOGRAMS) AS DECIMAL(9,2)) CUMULATIVE_PERCENTAGEFROM HISTOGRAMS AS OUTERHISTWHERE TOP != -1ORDER BY TOP

Page 90: DB2 Workload Manager Histograms

Measuring For An SLATOP         PERCENTAGE_IN_BIN CUMULATIVE_PERCENTAGE----------- ----------------- --------------------- 1 0.00 0.00 2 0.09 0.09 3 0.00 0.09 5 0.09 0.19 8 0.00 0.19 12 0.09 0.28 19 0.28 0.57 29 0.09 0.67 44 0.76 1.44         68 0.67 2.11        103 1.34 3.46        158 1.53 5.00 241 1.92 6.92 369 2.98 9.91 562 1.63 11.54 858 2.11 13.66 1309 0.86 14.53       1997 2.02 16.55    3046 2.02 18.57 4647 3.84 22.42 7089 5.67 28.10 10813 7.12 35.22 16493 6.35 41.57 25157 12.41 53.99 38373 15.39 69.39 58532 13.95 83.34 89280 10.49 93.84

Page 91: DB2 Workload Manager Histograms

Measuring For An SLATOP         PERCENTAGE_IN_BIN CUMULATIVE_PERCENTAGE----------- ----------------- --------------------- 1 0.00 0.00 2 0.09 0.09 3 0.00 0.09 5 0.09 0.19 8 0.00 0.19 12 0.09 0.28 19 0.28 0.57 29 0.09 0.67 44 0.76 1.44         68 0.67 2.11        103 1.34 3.46        158 1.53 5.00 241 1.92 6.92 369 2.98 9.91 562 1.63 11.54 858 2.11 13.66 1309 0.86 14.53       1997 2.02 16.55    3046 2.02 18.57 4647 3.84 22.42 7089 5.67 28.10 10813 7.12 35.22 16493 6.35 41.57 25157 12.41 53.99 38373 15.39 69.39 58532 13.95 83.34 89280 10.49 93.84

Page 92: DB2 Workload Manager Histograms

For More Information

DB2 workload management histograms, Part 1: A gentle introduction to histograms

https://www6.software.ibm.com/developerworks/offers/kits/db2/dbakit/articles/dm-0810mcdonald/

DB2 workload management histograms, Part 2: Understanding the six histograms of DB2 workload management

https://www6.software.ibm.com/developerworks/offers/kits/db2/dbakit/articles/dm-0810mcdonald2/

DB2 workload management histograms, Part 3: Visualizing and deriving statistics from DB2 histograms using SQL

https://www6.software.ibm.com/developerworks/offers/kits/db2/dbakit/articles/dm-0810mcdonald3/