Histogramas en la gestión de carga de trabajo
Un histograma es una colección de intervalos, que son contenedores para recopilar rangos de datos discretos. Los histogramas son útiles para gran diversidad de tareas de análisis de la carga de trabajo y de ajuste del rendimiento. Por ejemplo, puede utilizarlos para ver la distribución de valores, para identificar valores periféricos o para calcular promedios y desviaciones estándar.

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 0Para ver ejemplos de cómo utilizar histogramas para comprender y caracterizar mejor la carga de trabajo, consulte Ejemplo: Ajuste de una configuración de gestión de la carga de trabajo de Db2 cuando no se dispone de información de planificación de la capacidad y Ejemplo: Cálculo de medias y una desviación estándar a partir de histogramas en una configuración de gestión de cargas de trabajo de Db2.
En un entorno de base de datos de varios miembros, los histogramas se recopilan en cada miembro de base de datos. Los intervalos de histograma tiene el mismo rango de valores en todos los miembros de base de datos, con recuentos específicos por intervalo y por miembro. Puede utilizar los intervalos para analizar información relacionada con cada miembro individual. También puede combinar los histogramas de todos los miembros de base de datos sumando los recuentos de los intervalos correspondientes y utilizar este único histograma para obtener una vista global de los datos, que posteriormente podrá utilizar para tareas tales como el cálculo del promedio global y el desvío estándar.
- Vida útil de actividad de coordinador no anidada, cuando especifica AGGREGATE ACTIVITY DATA BASE o AGGREGATE ACTIVITY DATA EXTENDED para una clase de servicio, para una carga de trabajo o para una acción de trabajo aplicada a una clase de trabajo.
- Tiempo de ejecución de actividad de coordinador no anidada, cuando especifica AGGREGATE ACTIVITY DATA BASE o AGGREGATE ACTIVITY DATA EXTENDED para una clase de servicio, para una carga de trabajo o para una acción de trabajo aplicada a una clase de trabajo.
- Tiempo en cola de actividad de coordinador no anidada, cuando especifica AGGREGATE ACTIVITY DATA BASE o AGGREGATE ACTIVITY DATA EXTENDED para una clase de servicio, para una carga de trabajo o para una acción de trabajo aplicada a una clase de trabajo.
- Tiempo de ejecución de petición, cuando especifica AGGREGATE REQUEST DATA BASE para una subclase de servicio; este histograma no se aplica a las cargas de trabajo o las clases de trabajo.
- Histograma de tiempo entre llegadas de actividades no anidadas, cuando especifica AGGREGATE ACTIVITY DATA EXTENDED para una clase de servicio, para una carga de trabajo o para una acción de trabajo aplicada a una clase de trabajo.
- Coste estimado de actividad de DML no anidada, cuando especifica AGGREGATE ACTIVITY DATA EXTENDED para una clase de servicio, para una carga de trabajo o para una acción de trabajo aplicada a una clase de trabajo.
- Vida útil de unidad de trabajo, cuando especifica AGGREGATE UNIT OF WORK DATA BASE para una clase de servicio
Todos los histogramas relacionados con actividades contienen información acerca de las actividades que se han completado, cancelado o rechazado.
Plantillas de histograma
Opcionalmente, puede especificar una plantilla de histograma que se utilice para determinar qué aspecto ha de tener un histograma en particular, incluido el valor de intervalo alto. Una plantilla de histograma es un objeto sin unidad, es decir, que no tiene asignada ninguna unidad de medición predefinida. Una unidad de medición, que depende del contexto en el que se utiliza la plantilla de histograma, se asigna al histograma cuando se crea o altera una clase de servicio, una carga de trabajo o una acción de trabajo. Los histogramas basados en el tiempo, como los que se especifican como ejemplo con la cláusula ACTIVITY LIFETIME HISTOGRAM, utilizan unidades de milisegundo, mientras que los histogramas basados en el coste, como los especificados como ejemplo con la cláusula ACTIVITY ESTIMATED COST HISTOGRAM, utilizan unidades de timeron.
CREATE HISTOGRAM TEMPLATE TEMPLATE1 HIGH BIN VALUE 3000000Low 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 InfinityPuede aplicar una plantilla utilizando la palabra clave HISTOGRAM TEMPLATE adecuada al crear o alterar subclases de servicio, cargas de trabajo o acciones de trabajo. Si no especifica una plantilla de histograma, se utilizará la plantilla por omisión, SYSDEFAULTHISTOGRAM. Si no habilita la recopilación AGGREGATE ACTIVITY DATA para un objeto, la plantilla de histograma se pasará por alto.
ALTER SERVICE CLASS MYSUBCLASS UNDER MYSUPERCLASS
ACTIVITY LIFETIME HISTOGRAM TEMPLATE TEMPLATE1Después de haber confirmado la sentencia ALTER SERVICE CLASS, el histograma de vida útil de actividad que se ha recopilado para la subclase de servicio MYSUBCLASS tiene valores de intervalo alto que se han determinado mediante la plantilla de histograma TEMPLATE1 en lugar de mediante la plantilla de histograma SYSDEFAULTHISTOGRAM.
Si cambia una clase de servicio o una carga de trabajo para utilizar una plantilla de histograma distinta o cambia una plantilla de histograma, el cambio no entrará en vigor hasta que se produzca un restablecimiento de estadísticas.
Puede descartar una plantilla de histograma mediante la utilización de la sentencia DROP HISTOGRAM TEMPLATE.
Puede ver las plantillas de histograma consultando la vista SYSCAT.HISTOGRAMTEMPLATES y ver los valores de intervalo alto de la plantilla de histograma correspondiente consultando la vista SYSCAT.HISTOGRAMTEMPLATEBINS. El valor de intervalo bajo siempre es 0 para el primer intervalo; para los demás intervalos, el valor de intervalo bajo es el valor de intervalo alto del intervalo anterior.
ejemplos
El ejemplo siguiente crea una función de tabla para calcular el histograma CoordActLifetime, CoordActExecTime, CoordActQueueTime o CoordActEstCost para una superclase de servicio de forma conjunta sumando las subclases. La suma de subclases es útil cuando las actividades vuelven a correlacionarse con subclases de servicio distintas bajo la misma superclase de servicio durante la ejecución, y puede producirse en un escenario de disminución de la prioridad en el que se utilizan niveles de clase de servicio y umbrales especializados para controlar dinámicamente los recursos para las actividades. Este ejemplo no se aplica al histograma CoordActInterArrivalTime porque los promedios ponderados calculados no contabilizan por el hecho de que el histograma CoordActInterArrivalTime de una subclase mide el tiempo transcurrido entre la llegada de una consulta en esa subclase y la siguiente consulta, pero el histograma CoordActInterArrivalTime de una superclase mide el tiempo transcurrido entre la llegada de una consulta en cualquiera de sus subclases y la siguiente consulta.
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
La salida tiene el aspecto siguiente:
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.