db2 workload manager histograms
TRANSCRIPT
DB2 9.5 Monitoring
Performance Tuning and Problem Determination
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.
New DB2 9.5 Monitoring Features• Types of Information
– Statistics• Counters• High watermarks•Histograms
– Activities• Types of Presentation
– Table functions– Event monitors
The Bell Curve
The Bell Curve in Height
The Power Law Curve
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 …”
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)…”
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
“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.”
Drawing A Histogram – Step 1
Drawing A Histogram – Step 2
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 - 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
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 ]
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
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
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
Bin Range Frequency
[ 0 - 1 ] 1
( 1 - 2 ] 4
( 2 - 3 ] 3
( 3 - 4 ] 2
( 4 - 5 ] 5
( 5 - 6 ] 4
( 6 - 7 ] 1
Why Are Histograms Useful?• Reveal hidden distribution details• Detect outliers• Can be aggregated
Reveal Hidden Distribution Details
• Month 1 - all users are happy– Average response time: 19 seconds– Standard deviation: 6 seconds
Reveal Hidden Distribution Details
• Month 2 - some users are complaining– Average response time: 19 seconds– Standard deviation: 6 seconds
Reveal Hidden Distribution Details
• Month 1 - all users are happy– Average response time: 19 seconds– Standard deviation: 6 seconds
Reveal Hidden Distribution Details
• Month 2 - some users are complaining– Average response time: 19 seconds– Standard deviation: 6 seconds
Outliers
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.
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.
Net Worth Histogram
Net Worth Histogram
Aggregating Histograms• Aggregate short periods of time into
longer periods– Daily response times for day-to-day
decision-making– Monthly reports
Aggregating Averages In Innumeracy, John
Allen Paulos gives an example of a sports anomaly involving batting averages.
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, …”
Batting Averages• “… but Lou Gehrig
ends up with a higher batting average for the season as a whole.”
Batting AveragesPlayer Half Average At Bats
Babe Ruth First .300 200
Second .400 100
Lou Gehrig First .290 100
Second .390 200
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
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
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
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
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
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
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
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
DB2 WLM Histograms• Activity
– Execution time– Queue time– Lifetime– Inter-arrival time– Estimated cost
• Request– Execution time
Lifecycle Of An Activity
Inter-arrival Times
Inter-arrival Times
How Much Data Is Enough?
How Much Data Is Enough?
How Much Data Is Enough?
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
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
How To Collect DB2 Histograms
• Request execution time
alter service class MANAGERS under MARKETING collect aggregate request data BASE
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
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()
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.
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.
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.
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.
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.
Visualizing A Histogram SELECT TOP, NUMBER_IN_BIN FROM HISTOGRAMBIN_DB2STATISTICS
Visualizing A Histogram SELECT TOP, NUMBER_IN_BIN FROM HISTOGRAMBIN_DB2STATISTICS WHERE SERVICE_CLASS_ID = 13
Visualizing A Histogram SELECT TOP, NUMBER_IN_BIN FROM HISTOGRAMBIN_DB2STATISTICS WHERE SERVICE_CLASS_ID = 13 AND HISTOGRAM_TYPE = ‘CoordActLifetime’
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’
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
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
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
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
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
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
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 ####################################
Visualizing A HistogramTOP GRAPH----------- ------------------------------------------------------------ -1 1 2 # 3 #### 5 #################################### 8 ############################################################ 12 ############################ 19 ######### 29 # 44 68 103 158 241 369 562 858 1309 1997
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.
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
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
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
Why Do Bins Grow Exponentially?
6 hours40 bins
= 9 minutes/bin
ServiceLevel
Agreements
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
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
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
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
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
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
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/