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