SQL/Monitoring Facility
AccueilGroovy ?SolutionsNewsPartenairesContact


SQL/Monitoring Facility: surveillez vos bases DB2


SQL/Monitoring ("SQL/MF") est la référence en matière de surveillance de DB2 VM & VSE.

Ce logiciel fournit des informations complètes et détaillées sur :

  • La performance globale de la base de données
  • La performance des instructions SQL individuelles

La surveillance s'effectue au niveau des requêtes dynamiques et des applications compilées.
SQL/MF surveille tous les clients DB2, y compris les clients DRDA et TCP/IP.


Surveillance des instructions SQL

Capture des Instructions

Dans la plupart des cas, la dégradation des performances DB2 est liée à un problème au niveau des instructions SQL. La correction de ces instructions peut améliorer de manière significative la performance de la base de données complète. Par conséquence, la surveillance au niveau des instructions SQL est essentielle.

Le Moniteur d'Instructions SQL/MF enregistre en continu les caractéristiques d'exécution de chaque instruction SQL en cours, avec, pour chaque instruction :
 

    • des statistiques détaillées (temps CPU, temps d'attente entrée-sortie, nombre de lignes et de pages traitées, nombre d'appels aux sous-systèmes relationnels et DBSS etc...)
    • le chemin d'accès de l'instruction (par exemple, le nom de l'index)
    • le texte de l'instruction dynamique ou compilée (avec toutes les variables replacées dans leur contexte)


Le DBA accède en temps-réel à ces données en faisant défiler la liste des instructions en cours d'exécution et le détail de ces instructions au moyen de l'interface utilisateur de SQL/MF. Cette interface permet également au DBA d'interagir sur toute instruction en cours d'exécution afin :
 

    • d'obtenir les informations du catalogue de la table, des colonnes ou de l'index utilisés par l'instruction
    • d'effectuer une analyse des locks
    • d'exécuter des commandes, telles que DB2 FORCE

 

Statistiques sur les Instructions

A la conclusion de l'exécution d'une instruction SQL, SQL/MF stocke toutes les statistiques enregistrées pour l'instruction dans la table SQL_Statements. Cette table contient :
 

    • le texte de l'instruction
    • le chemin d'accès de l'instruction
    • les statistiques des temps d'exécution de la dernière instruction exécutée


En consultant cette table, le DBA peut ainsi obtenir l'information de contrôle de la dernière exécution de toute instruction SQL.

 

Statistiques des Packages

Pour chaque package exécuté durant une session DB2, SQL/MF maintient une information de l'utilisation du package dans sa table Package Statistics. Cette table peut s'avérer très pratique pour une utilisation comptable.

 

Statistiques de Session

La fonction RunStats présente de manière graphique et ordonnée l'utilisation des ressources par les utilisateurs et les packages pendant la session DB2 courante. Les statistiques montrent les utilisateurs, les packages et les instructions des package par coût SQL décroissant. Si nécessaire, la fonction RunStats peut être conservée dans une table DB2 pour un nombre spécifique de jours.

 

Journalisation des Exceptions

Un certain nombre de critères d'exception peuvent être définis dans le fichier de configuration de SQL/MF. Quand une instruction SQL dépasse un de ces seuils

d'exception lors de l'exécution, elle est enregistrée dans la table d'exception de SQL/MF. Les critères d'exception peuvent être définis de la manière suivante :
 

    • nombre maximum de requêtes en entrée/sortie
    • temps de réponse maximum de l'instruction
    • temps d'attente maximum des locks
    • temps d'inactivité maximum
    • plage définie de SQLCODEs
    • évènement d'escalade de verrou etc..

 

Le `Gouverneur'

Non seulement SQL/MF enregistre la performance de la base de données, mais de plus sa fonction `Gouverneur' limite également l'utilisation excessive des ressources de la base de données par les utilisateurs et les packages. La fonction surveille en permanence les utilisateurs et les déconnecte de la base de données lors d'un abus de ressources restreintes. Ces restrictions sont définies dans le fichier de configuration de SQL/MF, sous la forme de la valeur maximale de ressources systèmes qu'un utilisateur est autorisé à consommer, par exemple :
 

    • le nombre maximum de requêtes en entrée/sortie
    • le temps de réponse maximum de l'instruction
    • le temps maximum en `lockwait' ou `lockhold'
    • le temps d'inactivité maximum pendant une unité de travail logique
    • le coût maximum des instructions dynamiques SQL


La fonction `Gouverneur' peut être activée pour tous les utilisateurs et pour toutes les applications, compilées et dynamiques. Le `Gouverneur' mettra automatiquement un terme aux goulots d'étranglement de la base de données, tels que les verrous de la base ou les entrées/sorties excessives.

 

Système de Notification

Un message peut être envoyé à un utilisateur particulier quand :
 

    • une instruction SQL utilise plus de ressources buffer ou entrées/sorties que prévu
    • une instruction prend trop de temps à s'exécuter
    • une session utilisateur est inactive pendant un certain laps de temps
    • une instruction SQL est en état `lockwait' pendant un certain temps
    • une instruction SQL dynamique dépasse un coût SQL défini

 

Benchmarking des Packages

La fonction `benchmark' enregistre dans une table spécifique les statistiques d'exécution de toutes les instructions SQL exécutées par un package particulier.

 

Enregistrement des Instructions

La fonction d'enregistrement des instructions capture toutes les instructions SQL exécutées lors de la période d'enregistrement dans un fichier Recorder. La liste des Recorders indique le texte de l'instruction, le chemin d'accès et toutes les statistiques d'exécution. L'enregistrement peut être initié de manière périodique.

Alternativement, l'enregistrement peut être lancé par une commande, afin d'enregistrer des applications, des utilisateurs ou des terminaux spécifiques.

Pour des raisons de performance, le système enregistre dans un dataspace, qui est écrit de manière asynchrone dans le fichier Recorder par une machine virtuelle déconnectée (ou une sous-tâche dans la version VSE). Le Recorder est un fichier CMS (cluster VSAM dans la version VSE).

 

Enregistrement des `Lockwaits'

A la demande, le système peut maintenir une log chronologique des évènements de type `lockwait' au cours d'une session DB2.

 

Enregistrement des Checkpoints

L'enregistreur de Checkpoint relève l'occurrence, la durée et l'utilisation de ressources de chaque checkpoint système DB2.

 

Fonction AutoPrep

Cette fonction a pour mission de réduire le coût de chaque requête dynamique SQL.

En effet, le SQL Dynamique implique pour DB2 la détermination de la stratégie d'accès avant toute exécution de ce type de SQL. Cette étape de détermination du chemin d'accès peut être très coûteuse en termes d'utilisation de CPU et de contention de catalogue.

De nos jours, avec l'augmentation des accès aux bases de données depuis les PC, les applications e-business et les ERP, le SQL dynamique devient de plus en plus un goulot d'étranglement.

La fonction AutoPrep propose la solution suivante :
 

    • elle détecte les instructions de SQL dynamique exécutées fréquemment
    • elle initie une `préparation' de DB2 pour ces instructions (dans le serveur AutoPrep)
    • elle remplace la séquence dynamique par une séquence statique qui invoque le package généré


Cette solution élimine entièrement le coût associé à la détermination du chemin d'accès.

Analyse des Instructions

Conjointement à l'utilisation du logiciel SQL/Command Analysis, les instructions en cours et celles enregistrées dans les tables SQL/MF peuvent être soumises à des fins de traitement EXPLAIN et d'analyse des prédicats.

 


Surveillance du Système

En complément des facilités décrites ci-avant, la surveillance des instructions SQL, le composant SQL/MF System Monitor offre une vue globale de la performance de la base de données. A des intervalles définies par l'utilisateur, le moniteur système prend une photographie des bases surveillées et enregistre les données suivantes dans les tables System Monitor :
 

Performance Globale

Enregistre la consommation de ressources de la base de données, selon les compteurs DB2 système.

 

Pool de Buffers

Enregistre l'utilisation du pool de buffers par les Dbspaces et les pools de storage, et fournit de l'information sur la distribution des accès au pool de buffers par Dbspaces individuel.

 

Data Spaces

Enregistre la performance du système de Data Spaces de DB2 (version VM uniquement).

 

Storage Pools

Enregistre l'utilisation d'espace DASD physique et le manque d'espace dans un pool.

 

Log DB2

Enregistre le pourcentage d'utilisation de la log système DB2.

 

Activité Utilisateur

Enregistre le statut des agents actifs par intervalle de surveillance

 

Verrous

Enregistre les agents se trouvant en statut LOCK et fournit de l'information sur les verrous placés.

 

Connexions

Enregistre le statut des connexions DB2 par intervalle de surveillance.

 

Surveillance des Checkpoints

Enregistre la fréquence et la durée des checkpoints initiés par le système et signale d'éventuels retards.

 

Graphiques de Surveillance du Système

La fonction Graphiques Système propose une vue graphique de l'activité système. Elle affiche, pour une période donnée, le nombre de :
 

    • Unités Logiques de Travail
    • Appels au sous-système relationnel DB2
    • Buffers
    • Entrées/Sorties

 


Interface Utilisateur SQL/MF

Toutes les données collectées par SQL/MF sont examinées depuis une application unique, utilisant des menus structurés et une interface PFkey standard. L'interface utilisateur est une application CMS ou CICS (VSE).

L'interface utilisateur donne accès :
 

    • A la Fonction des instructions en cours
    • A la fonction du détail des instructions
    • Aux tables de surveillance des instructions, à l'aide d'un éditeur de tables livré avec SQL/MF
    • Aux tables de surveillance système (éditeur de tables fourni)
    • Aux statistiques des sessions
    • Aux fichiers des enregistreurs des instructions et des `Lockwait'
    • Aux interfaces de données graphiques
    • A l'interface de commande Hôte permettant la soumission de commandes opérateurs DB2, de commande SQL/MF MONITOR, et de commandes CP et CMS


Navigateur de Catalogue

Lors de l'examen des rapports de surveillance, il est souvent nécessaire de consulter les catalogues DB2. La fonction Objects de l'éditeur de tables livré avec le produit propose déjà une consultation restreinte du catalogue, le Navigateur, quant à lui, met à disposition une interface généraliste, facile à utiliser et plein écran à chaque table du catalogue. De plus, chaque liste de catalogue permet un accès aux tables de catalogues associées (par exemple : les index de la table, les droits sur un package et ainsi de suite).

Étant donné que les listes `associées' peuvent être imbriquées, le Navigateur est un outil complet permettant la localisation rapide des données de catalogues demandées. Le Navigateur peut également éditer les tables utilisateurs dans une liste de tables (si les privilèges DB2 nécessaires sont présents).

 


Personnalisation de SQL/MF

Rapports Utilisateur

SQL/MF est fourni avec 63 rapports interactifs, qui peuvent être appelés depuis le Menu Rapports. Toutes les tables SQL/MF étant des tables DB2 standard, il est possible de personnaliser les rapports de surveillance. Ces rapports utilisateurs sont automatiquement ajoutés au Menu Rapports.

 

Gestion Utilisateur des Processus Attachés

Les processus attachés sont des programmes REXX utilisateurs, invoqués lors de la surveillance. Les processus accèdent en temps-réel aux données surveillées. Ils permettent une personnalisation des procédures de surveillance utilisées avec SQL/MF.

 

Exit de Connexion

Un `exit' de connexion est un programme invoqué lorsqu'un utilisateur DB2 émet une instruction CONNECT explicite. Cet exit reçoit les paramètres de connexion en argument d'invocation et peut rejeter la connexion, si désiré.

 

Tables de Surveillance

SQL/MF stocke les résultats de la surveillance dans des tables DB2. Ces tables sont traitées par l'interface utilisateur SQL/MF, mais sont également disponibles à des fins de traitement utilisateur.

 


Pré-requis

Le logiciel SQL/Monitoring Facility requiert :
 

    • VM/ESA Version 1 Release 1.0 ou supérieur / DB2/VM Version 3 Release 3 ou supérieur
    • VSE/ESA Version 2 Release 2.0 ou supérieur / DB2/VSE Version 3 Release 5 ou supérieur