Puede crear cargas de trabajo de consulta desde sentencias SQL que
se encuentran datos descargados en tablas de
DB2 para
z/OS mediante una aplicación de
supervisión de consultas no IBM. Para llevar a cabo esta tarea, debe
correlacionar las categorías de datos con las columnas de las tablas de
DB2 for
z/OS que contienen los datos
descargados.
En este tema también se muestra un ejemplo de los requisitos para capturar
sentencias SQL para dichos datos.
Las columnas de las tablas de DB2 deben
contener la siguiente información acerca de las sentencias SQL, sus métricas de tiempo de
ejecución y los intervalos de tiempo durante las ejecuciones de las sentencias.
- Subsistema DB2
- Subsistema DB2 en el que se
recopilan las métricas de tiempo de ejecución y las sentencias SQL. (Tipo de datos: SQL
CHAR o VARCHAR)
- Nombre del plan
- Nombre del plan de DB2. (Tipo de datos: SQL
CHAR o VARCHAR)
- Colección
- ID del plan o la colección de paquetes de
DB2. (Tipo de datos: SQL
CHAR o VARCHAR)
- Nombre de paquete
- Nombre del paquete de DB2.
(Tipo de datos: SQL
CHAR o VARCHAR)
- Señal de consistente del paquete
- Señal de consistente de DBRM o del paquete de DB2.
(Tipo de datos: SQL
CHAR o BINARY)
- ID de autorización primaria
- ID de autorización primaria utilizado para ejecutar la sentencia. (Tipo de datos: SQL
CHAR o VARCHAR)
- Texto de sentencia
- Texto de la sentencia SQL, que puede ser toda la sentencia o un fragmento
de la misma. (Tipo de datos: SQL CHAR, VARCHAR o BINARY)
Este texto se puede
dividir en segmentos que estén en otras filas. El ID de sentencia exclusivo y
el número de secuencia aseguran que los segmentos se concatenen correctamente.
- La aplicación de supervisión de consulta puede descargar sentencias SQL
estáticas en la columna STMT del la tabla de catálogo SYSIBM.SYSPACKSTMT. La
tabla guarda el texto de SQL en formato BINARY. Si la aplicación que utiliza
descarga sentencias SQL estáticas en esta tabla, debe utilizar la función HEX()
para convertir la sentencias del formato BINARY en series hexadecimales.
Realice la conversión en la vista que defina para combinar esta columna con la
tabla de métricas de ejecución e información sobre los intervalos de tiempo en
los que se recopilan métricas.
- ID de sentencia exclusivo
- ID exclusivo para la sentencia; se utiliza para identificar fragmentos del
texto de la sentencia que se encuentran en filas distintas de una tabla. (Tipo de datos: SQL CHAR, VARCHAR o BINARY)
- Número de secuencia de la sentencia
- Número que describe el orden en el que un segmento de una sentencia puede
concatenarse con otros segmentos de la misma sentencia.
(Tipo de datos: SQL INT o SMALLINT)
- Inicio del intervalo
- Inicio del intervalo en el que se recopilaron las métricas de sentencia.
(Tipo de datos: SQL TIMESTAMP)
- Fin del intervalo
- Fin del intervalo en el que se recopilaron las métricas de sentencia.
(Tipo de datos: SQL TIMESTAMP)
- Número de sección
- Número de sección en el paquete de DB2
en el que se ubica la sentencia SQL. (Tipo de datos: SQL INT o SMALLINT)
- Número de sentencia
- Número de sentencia dentro del paquete de DB2.
(Tipo de datos: SQL INT o SMALLINT)
- Número de ejecuciones
- Número de veces que se ha ejecutado la sentencia SQL. (Tipo de datos: SQL INT o SMALLINT)
- Tiempo de CPU total
- Tiempo de CPU que se ha necesitado para ejecutar la sentencia para el
número de veces especificado en el recuento de ejecución. (Tipo de datos: SQL
FLOAT o DOUBLE)
- Tiempo transcurrido total
- Cantidad de tiempo de clase 2 que se ha necesitado para ejecutar la
sentencia para el número de veces especificado en el recuento de ejecución. (Tipo de datos: SQL
FLOAT o DOUBLE)
- Número de obtenciones de página
- Número de solicitudes de obtención de página emitidas. (Tipo de datos: SQL INT o SMALLINT)
- ID de métrica exclusivo
- ID exclusivo para las métricas de ejecución recopiladas para una sentencia
SQL; se utiliza para unir la tabla de métricas de ejecución con la tabla que
enumera los objetos a los que hacen referencia las sentencias SQL del
repositorio. (Tipo de datos: SQL CHAR, VARCHAR o BINARY)
También
puede especificar qué columnas contienen información acerca de objetos de base
de datos a los que las sentencias SQL hacen referencia, si una tabla contiene
esta información.
- Calificador de objeto dependiente
- Calificador o esquema del objeto referenciado. (Tipo de datos: SQL
CHAR o VARCHAR)
- Nombre de objeto dependiente
- Nombre del objeto referenciado. (Tipo de datos: SQL
CHAR o VARCHAR)
- Tipo de objeto dependiente
- Tipo de objeto referenciado. (Tipo de datos: SQL
CHAR o VARCHAR)
- Nombre de base de datos
- Nombre de la base de datos en la que se encuentra almacenado el objeto referenciado.
(Tipo de datos: SQL
CHAR o VARCHAR)
- Nombre de espacio de tabla
- Nombre del espacio de tabla en el que se encuentra almacenado el objeto referenciado.
(Tipo de datos: SQL
CHAR o VARCHAR)
- ID de métrica exclusivo
- ID exclusivo para las métricas de ejecución recopiladas para una sentencia
SQL; se utiliza para unir la tabla de métricas de ejecución con la tabla que
enumera los objetos a los que hacen referencia las sentencias SQL del
repositorio. (Tipo de datos: SQL CHAR, VARCHAR o BINARY)
Ejemplo de creación de una carga de trabajo de consulta desde
sentencias SQL en datos descargados en tablas de
DB2 para
z/OS mediante una aplicación de
supervisión de consultas
Supongamos que utiliza DB2 Query Monitor
for z/OS y descarga datos de archivos VSAM
en tablas de DB2 for
z/OS. Luego desea consultar estas tablas
para encontrar información acerca del rendimiento de las sentencias SQL en
distintas aplicaciones de base de datos. Si alguna de las sentencias SQL queda
por debajo del umbral de rendimiento, su objetivo es ajustar dichas sentencias.
Para capturar y ajustar las sentencias SQL de este repositorio de datos, debe
descargar métricas de ejecución, texto SQL e información sobre los intervalos
de tiempo.
Puede filtrar según los valores
de estos datos, de modo que el asistente de flujos de trabajo muestre solamente
el subconjunto de sentencias SQL que cumplen los criterios de filtrado.
Esta capacidad facilita la localización de las sentencias SQL que requieren ajuste.Debe descargar datos en estas tres tablas:
- CQMnnINTERVALS
- Esta tabla define las horas de inicio y finalización de cada intervalo.
- CQMnnSUMM_METRICS
- Esta tabla contiene métricas de ejecución que
DB2 Query Monitor for
z/OS recopila para cada sentencia SQL.
- CQMnnSUMM_TEXT
- Esta tabla contiene el texto de la sentencias SQL.
Nota: La aplicación de supervisión de consultas puede descargar el texto de
las sentencias SQL estáticas en la columna STMT de la tabla de catálogo
SYSIBM.SYSPACKSTMT.
Antes de utilizar el asistente de flujos de trabajo para capturar sentencias
SQL, debe crear una vista que una estas tres tablas. A continuación se muestra un ejemplo:
CREATE VIEW QM_STMT_VIEW
(DB2_SUBSYSTEM, PLAN, COLLECTION, PROGRAM,
CONSISTENCY_TOKEN, AUTHID, METRICS_TOKEN, TEXT_TOKEN, SQLTEXT, SEQNO,
INTERVAL_START, INTERVAL_END, SECTION, STMT, SQL_CALLS, DB2_CPU,
DB2_ELAP, GETPAGES)
AS
SELECT A.DB2_SUBSYSTEM, A.PLAN, A.COLLECTION, A.PROGRAM,
A.CONSISTENCY_TOKEN, A.AUTHID, A.METRICS_TOKEN, A.TEXT_TOKEN,
B.SQLTEXT, 0, A.INTERVAL_START, CURRENT TIMESTAMP AS INTERVAL_END_TS,
A.SECTION, A.STMT, A.SQL_CALLS, A.DB2_CPU, A.DB2_ELAPSED, A.GETPAGES
FROM QMTOOLS.CQM23_SUMM_METRICS A,
QMTOOLS.CQM23_SUMM_TEXT B
WHERE
A.TEXT_TOKEN = B.TEXT_TOKEN
AND A.SMFID = B.SMFID
AND A.CQM_SUBSYSTEM = B.CQM_SUBSYSTEM
AND A.INTERVAL_NUMBER = B.INTERVAL_NUMBER
AND A.INTERVAL_START = B.INTERVAL_START
AND A.INTERVAL_NUMBER IN (
SELECT DISTINCT A.INTERVAL_NUMBER
FROM QMTOOLS.CQM23_INTERVALS A,
QMTOOLS.CQM23_SUMM_METRICS B
WHERE A.SMFID = B.SMFID
AND A.CQM_SUBSYSTEM = B.CQM_SUBSYSTEM
AND A.INTERVAL_NUMBER = B.INTERVAL_NUMBER
AND A.INTERVAL_START = B.INTERVAL_START);
Si la aplicación de supervisión de consultas descarta el texto de las
sentencias SQL estáticas en la columna STMT de la tabla de catálogo
SYSIBM.SYSPACKSTMT, la vista debe unir esta columna con las tablas
CQMnnINTERVALS y CQMnnSUMM_METRICS
tables. Esta vista también debe utilizar la función HEX() para convertir el texto
de cada sentencia del formato BINARY a un formato de serie hexadecimal.
También puede descargar datos acerca de los objetos de base de datos a los que
las sentencias SQL hacen referencia. Deberá descargar los datos en la tabla
SUMM_OBJECTS.
Una vez que se han descargado los datos y se ha creado la vista, debe seguir
los pasos que se indican en Ejemplo de creación de una carga de trabajo de consulta desde un repositorio SQL definido por el usuario.