Vous pouvez créer des charges de travail de requête à partir d'instructions SQL qui se trouvent dans les données déchargées dans les tables
DB2 for z/OS par des applications de surveillance
de requêtes non IBM. Pour ce faire, vous devez
mapper des catégories de données sur les colonnes des tables DB2 for z/OS qui contiennent les données déchargées.Cette rubrique montre un exemple des exigences de capture d'instructions SQL depuis de telles données.
Les colonnes des tables DB2 doivent contenir les informations suivantes sur les instructions
SQL, leurs métriques d'exécution et les intervalles de temps
pendant lesquels l'instruction a été exécutée.
- Sous-système DB2
- Sous-système DB2 sur lequel les
métriques d'exécution et les instructions SQL ont été collectées. (Type de données :
SQL CHAR ou VARCHAR)
- Nom du plan
- Nom du plan DB2. (Type de données : SQL
CHAR ou VARCHAR)
- Collection
- ID de collection du plan ou du module DB2. (Type de données : SQL CHAR ou VARCHAR)
- Nom du module
- Nom du module DB2.
(Type de données : SQL CHAR ou VARCHAR)
- Marque de cohérence du module
- Marque de cohérence pour le module d'interrogation de base de données
ou le module DB2.
(Type de données : SQL CHAR ou BINARY)
- ID utilisateur primaire
- ID utilisateur primaire qui a été utilisé pour exécuter l'instruction. (Type de
données : SQL CHAR ou VARCHAR)
- Texte de l'instruction
- Texte de l'instruction SQL, soit l'instruction entière, soit un fragment. (Type
de données : SQL CHAR, VARCHAR ou BINARY)
Ce texte peut être divisé en segments
qui se trouvent dans d'autres lignes. L'ID d'instruction unique
et un numéro de séquence garantissent que les segments sont concaténés correctement.
- L'application de surveillance de requêtes peut décharger des instructions SQL statiques
dans la colonne STMT de la table de catalogue SYSIBM.SYSPACKSTMT. La table stocke
le texte SQL au format BINARY. Si l'application que vous utilisez décharge des instructions
SQL statiques dans cette table, vous devez utiliser la fonction
HEX() pour convertir les instructions du format BINARY en chaînes
hexadécimales. Effectuez la conversion dans la vue que vous définissez pour associer cette colonne
avec la table des métriques d'exécution et les informations concernant les intervalles de temps
dans lesquels les métriques ont été collectées.
- ID d'instruction unique
- ID unique à l'instruction ; il est utilisé pour identifier les fragments du
texte d'instruction qui se trouvent dans différentes lignes d'une table. (Type de
données : SQL CHAR, VARCHAR ou BINARY)
- Numéro de séquence d'instruction
- Nombre décrivant l'ordre dans lequel un segment d'une instruction doit être
concaténé avec les autres segments de cette instruction.
(Type de données : SQL INT ou SMALLINT)
- Début de l'intervalle
- Début de l'intervalle dans lequel les métriques d'exécution ont été
collectées.
(Type de données : SQL TIMESTAMP)
- Fin de l'intervalle
- Fin de l'intervalle dans lequel les métriques d'exécution ont été collectées.
(Type de données : SQL TIMESTAMP)
- Numéro de section
- Numéro de la section du module DB2
dans laquelle l'instruction SQL est située. (Type de données : SQL INT ou SMALLINT)
- Numéro d'instruction
- Numéro de l'instruction dans le module DB2.
(Type de données : SQL INT ou SMALLINT)
- Nombre d'exécutions
- Nombre de fois que l'instruction SQL a été exécutée. (Type de données : SQL INT
ou SMALLINT)
- Temps UC total
- Temps UC nécessaire pour exécuter l'instruction le nombre de fois spécifié pour
le comptage d'exécution. (Type de données : SQL FLOAT ou DOUBLE)
- Durée totale écoulée
- Temps de classe 2 nécessaire pour exécuter l'instruction le nombre de fois
spécifié pour le comptage d'exécution.
(Type de données : SQL FLOAT ou DOUBLE)
- Nombre de requêtes getpages
- Nombre de requêtes getpage qui ont été lancées. (Type de données : SQL INT ou
SMALLINT)
- ID de métrique unique
- ID unique aux métriques d'exécution collectées pour une instruction SQL ; il
permet de joindre la table des métriques d'exécution à celle qui répertorie les
objets référencés par les instructions SQL du référentiel. (Type de données : SQL CHAR,
VARCHAR ou BINARY)
Vous pouvez également
spécifier les colonnes qui contiennent les informations concernant les objets de base de données
référencés par l'instruction SQL si une table contient ces informations.
- Qualificatif d'objet dépendant
- Qualificatif ou schéma de l'objet référencé. (Type de données : SQL CHAR ou
VARCHAR)
- Nom de l'objet dépendant
- Nom de l'objet référencé. (Type de données : SQL CHAR ou VARCHAR)
- Type d'objet dépendant
- Type de l'objet référencé. (Type de données : SQL CHAR ou VARCHAR)
- Nom de base de données
- Nom de la base de données dans laquelle l'objet référencé est stocké.
(Type de données : SQL CHAR ou VARCHAR)
- Nom de l'espace de table
- Nom de l'espace table dans lequel l'objet référencé est stocké.
(Type de données : SQL CHAR ou VARCHAR)
- ID de métrique unique
- ID unique aux métriques d'exécution collectées pour une instruction SQL ; il
permet de joindre la table des métriques d'exécution à celle qui répertorie les
objets référencés par les instructions SQL du référentiel. (Type de données : SQL
CHAR, VARCHAR ou BINARY)
Exemple de création d'une charge de travail de requête depuis des instructions SQL
dans les données déchargées dans les tables DB2 for z/OS par une application de
surveillance des requêtes
Supposez que vous utilisez DB2 Query Monitor
for z/OS et déchargez des données depuis des fichiers
VSAM dans des tables DB2 for z/OS. Vous voulez ensuite interroger ces tables pour rechercher des informations sur les
performances d'instructions SQL dans différentes applications de base de données. Si la performance des instructions SQL
est inférieure à un certain seuil, votre objectif est de les optimiser.
Pour capturer et optimiser des
instructions SQL depuis ce référentiel de données, vous devez décharger des métriques d'exécution,
du texte SQL et des informations sur les intervalles de temps.
Vous pouvez filtrer des valeurs dans ces données,
pour que l'assistant Flux de travaux affiche uniquement le sous-ensemble d'instructions
SQL qui répond à vos critères de filtrage.
Cette fonctionnalité facilite la recherche d'instructions SQL qui requièrent
une optimisation.Vous devez décharger des données dans les trois tables suivantes :
- CQMnnINTERVALS
- Cette table définit les heures de début et de fin de chaque intervalle.
- CQMnnSUMM_METRICS
- Cette table contient les métriques d'exécution collectées par
DB2 Query
Monitor for z/OS pour chaque instruction SQL.
- CQMnnSUMM_TEXT
- Cette table contient le texte des instructions SQL.
Remarque : Votre application de surveillance
de requêtes peut décharger le texte d'instructions SQL statiques
dans la colonne STMT de la table de catalogue SYSIBM.SYSPACKSTMT.
Avant d'utiliser l'assistant Flux de travaux pour capturer les instructions SQL,
vous devez créer une vue qui joint ces trois tables. Exemple :
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 votre application de surveillance
de requêtes décharge le texte des instructions SQL statiques
dans la colonne STMT de la table de catalogue SYSIBM.SYSPACKSTMT, la vue doit joindre cette colonne avec les
tables CQMnnINTERVALS et CQMnnSUMM_METRICS. La vue doit également utiliser la fonction HEX() pour convertir le texte de chaque instruction du format
BINARY en une chaîne hexadécimale.
Vous pouvez également décharger des données sur les objets
de base de données référencés par les instructions SQL. Vous devez alors décharger ces données dans la
table SUMM_OBJECTS.
Une fois vos données déchargées et votre vue créée,
effectuez les étapes répertoriées dans Exemple de création d'une charge de travail de requête à pour un référentiel SQL défini par l'utilisateur.