> Data > Comment suivre un événement à  la trace

Comment suivre un événement à  la trace

Data - Par iTPro.fr - Publié le 24 juin 2010
email

par Itzik Ben-Gan
Tracez les problèmes de base de données avec les puissants outils de suivi inclus dans SQL Server 7.0 Suivre à  la trace les requêtes des clients et les réponses du serveur n'est pas chose facile avec les versions de SQL Server antérieures à  la version 6.5. Un outil de suivi freeware, appelé SQLEye, analyseur de trames réseau ODS (Open Data Services) peut permettre de s'en sortir mais il est difficile à  configurer et compliqué à  utiliser, même pour des opérations de suivi de base.

SQL Server 6.5 a apporté un outil graphique, SQL Trace, facilitant l'utilisation de SQLEye. SQL Trace, qui peut sauvegarder ses résultats dans un fichier trace ou un fichier script SQL, peut gérer un nombre limité d'événements et de filtres ; il indique également, par exemple, les instructions SQL passées par un client et les procédures cataloguées exécutées par le serveur. En revanche, on ne pourra pas savoir ce qui se passe à  l'intérieur du serveur. On ne saura pas par exemple quelles procédures cataloguées ont été appelées par d'autres procédures cataloguées, ou quand une connexion a mis en place ou libéré un verrouillage (à  moins d'utiliser SQL Server 7.0).

Profiler capture des informations détaillées à  propos des événements se produisant sur le serveur

Les puissantes fonctions de suivi de SQL Server, et en particulier de son nouvel outil de traçage, SQL Profiler, améliorent les fonctionnalités de SQL Trace et introduisent de nouvelles fonctions de suivi, d'analyse et d'optimisation de SQL Server. Profiler capture des informations détaillées à  propos des événements se produisant sur le serveur. Cela permet ainsi de passer dans les coulisses du problème ; on peut découvrir les requêtes aboutissant à  un blocage, les raisons de la lenteur de certaines requêtes, les opérations effectuées dans une procédure cataloguée, etc... Non seulement peut-on déterminer si un événement s'est produit, mais on peut également analyser les opérations ayant conduit à  cet événement. Outre l'interception des requêtes client et des réponses du serveur, Profiler enregistre les événements générés par les composants internes du serveur.

La configuration d'une trace Profiler de base est relativement simple. Mais on peut rapidement se retrouver noyé dans la masse des données générées par cet outil. Profiler résout le problème en fournissant des filtres permettant de contrôler la quantité et le type des données incluses dans le suivi. Le présent article permet de se familiariser avec SQL Profiler, et montre comment définir graphiquement une trace. L'encadré "Boîte noire SQL Server", décrit la fonction Flight Recorder de SQL Server, qui trace les 100 dernières requêtes. L'article "Résolution de problèmes avec SQL Profiler", analyse plus en détail les fonctions de suivi de Profiler et de SQL Server.


Boîte noire SQL Server


Les traces permettent d'analyser le comportement du système. Toutefois, l'analyse d'un problème donné peut se révéler difficile, car les événements ayant conduit au problème se sont déjà  produits. Pour parer à  toute éventualité, on peut créer une trace qui fonctionne en tâche de fond et de façon permanente. En plus de consommer des ressources systèmes, une telle trace génère trop d'informations difficiles à  analyser efficacement. Une autre alternative consiste à  essayer de reproduire le problème. Cependant, la solution la plus simple consiste à  utiliser la fonction Flight Recorder de SQL Server, qui enregistre les 100 dernières requêtes traitées. Les informations de Flight Recorder sont particulièrement utiles lorsque le système s'arrête brutalement.

Pour démarrer Flight Recorder, exécutez la procédure cataloguée étendue xp_trace_setqueryhistory 1. Cette procédure démarre automatiquement la fonction Flight Recorder à  chaque fois que SQL Server démarre. Pour arrêter la trace, exécutez xp_trace_setque

La figure 1 illustre l’architecture de suivi de SQL Server 7.0, constituée de
générateurs d’événements, de files d’attentes d’événements et d’utilisateurs d’événements.
Les générateurs d’événements (tels qu’ODS, le processeur de requêtes, et le moteur
de stockage) génèrent des événements. Notez que le processeur de requêtes et le
moteur de stockage sont des composants internes du serveur. ODS, qui transmet
les requêtes des clients au serveur et les réponses du serveur aux clients, reçoit
des appels aux procédures cataloguées distantes et des batchs, puis regroupe et
gère les connexions client/serveur.
Le processeur de requêtes génère un plan d’exécution pour une requête ; par exemple,
il choisit les index et les algorithmes de jointure à  utiliser et décide d’exécuter
ou non un balayage ou une recherche par index. Le moteur de stockage gère les
fichiers base de données et leurs pages de données et est responsable de l’accès
aux objets, de la création des objets, etc…
Le moteur de stockage dispose de deux gestionnaires : le gestionnaire de verrouillages
(Lock Manager), qui traite les transactions et les verrouillages, et le gestionnaire
d’historique (Log Manager), qui gère le journal et la restauration. Les erreurs
et les avertissements génèrent des événements. En outre, on peut générer ses propres
événements, dont SQL Server 7.0 doit effectuer le suivi en utilisant la procédure
cataloguée étendue xp_trace_generate_event. Par exemple, en utilisant une procédure
dans un déclencheur (trigger), SQL Profiler peut suivre à  la trace un événement
défini par l’utilisateur, tel qu’une suppression de client (pour en savoir plus
sur les procédures cataloguées étendues de suivi, reportez-vous à  l’article « Résolution
de problème avec SQL Profiler »).

Les files d’attente d’événements rassemblent les événements générés par les générateurs
d’événements et récupérés par les utilisateurs. Ces files d’attentes, gérées par
les threads internes du serveur, filtrent les événements selon les critères définis,
puis les dirigent vers les utilisateurs d’événements.
Les utilisateurs d’événements extraient et traitent, de manière asynchrone, les
événements présents dans les files d’attente. Les utilisateurs potentiels sont
notamment SQL Profiler, les fichiers du système d’exploitation, les tables SQL
Server, le journal d’événements de Windows (uniquement avec les procédures cataloguées
étendues), les serveurs distants et les applications personnalisées pouvant lire
directement dans les files d’attente.

Téléchargez cette ressource

Guide inmac wstore pour l’équipement IT de l’entreprise

Guide inmac wstore pour l’équipement IT de l’entreprise

Découvrez les dernières tendances et solutions IT autour des univers de Poste de travail, Affichage et Collaboration, Impression et Infrastructure, et notre dossier Green IT sur les actions engagés par inmac wstore pour réduire son impact environnemental

Data - Par iTPro.fr - Publié le 24 juin 2010