Connaître les classes d’événements et les colonnes gérées par une trace SQL Profiler côté serveur

Il peut être utile de connaître en détail les événements et les colonnes gérées par une trace profiler. La vue système sys.traces permet de lister l’ensemble des traces existantes sur un serveur de bases de données sans en donner le détail. Cependant Il existe une fonction très pratique et quelques vues systèmes qui permettent de récupérer les informations nécessaires à notre besoin.

Le script suivant est basé sur la fonction fn_trace_geteventinfo() qui permet de récupérer pour une trace précise les ID des événements et des colonnes qu’elle gère. Elle prend en paramètre l’id d’une trace côté serveur. Il suffit ensuite de récupérer le reste des informations nécessaires grâce aux vues systèmes sys_trace_columns et sys.trace_events.

– Récupération de l’id d’une trace
SELECT
id,
path
FROM sys.traces

– Récupération des événements et colonnes gérées par la trace concernée
– Dans cet exemple on récupère les données de la trace ID = 1
– qui est la trace créée par défaut sur SQL Server
SELECT
e.name AS event_name,
c.name AS column_name
FROM ::fn_trace_geteventinfo(1) AS t
INNER JOIN sys.trace_columns AS c
ON t.columnid = c.trace_column_id
INNER JOIN sys.trace_events AS e
ON e.trace_event_id = t.eventid
ORDER BY e.name, c.name

Bon audit de trace !!

David BARBARIN (Mikedavem)
Elève ingénieur CNAM Lyon

Laisser un commentaire