112
Chapitre 5. Analyse des performances
set @on = 1
exec sp_trace_setevent @TraceID, 14, 1, @on
-- ...
-- Set the Filters
declare @intfilter int
declare @bigintfilter bigint
exec sp_trace_setfilter @TraceID, 10, 0, 7,
N'SQL Server Profiler - 05b0b8f9-5048-4129-a0c1-9b7782ba8e6c'
-- Set the trace status to start
exec sp_trace_setstatus @TraceID, 1
-- display trace id for future references
select TraceID=@TraceID
• sp_trace_create : crée une trace en retournant en paramètre OUTPUT son
identifiant numérique. Vous indiquez en paramètre le chemin du fichier dans
lequel la trace sera enregistrée. Vous pouvez également indiquer la taille du
fichier et le nombre maximum de fichiers de rollover, ainsi que la date et heure
d’arrêt de la trace.
• sp_trace_setevent : ajoute un événement à partir de son identifiant. Celui-ci
peut être retrouvé dans la vue sys.trace_events. Exemple de requête pour
lister les événements :
SELECT tc.name as categorie, te.name as evenement, trace_event_id
FROM sys.trace_categories tc
JOIN sys.trace_events te ON tc.category_id = te.category_id
ORDER BY categorie, evenement;
• sp_trace_setfilter : ajoute un filtre. Les paramètres indiquent l’ID d’événement, un numérique indiquant un booléen pour organiser les filtres sur un
même événement (AND ou OR entre les filtres), un numérique indiquant
l’opérateur de comparaison, et la chaîne UNICODE à comparer.
• sp_trace_setstatus : démarre (0), arrête (1) ou supprime (2) la trace. C’est ce
qui vous donne le contrôle sur l’exécution de votre trace.
La vue système sys.traces vous permet de retrouver la liste des traces définies.
Lorsque vous avez une trace définie, vous pouvez planifier son exécution à l’aide de
sp_trace_setstatus, par exemple dans des travaux de l’agent SQL.
Traces système
SQL Server possède deux traces spéciales, qu’il gère lui-même. La première est
appelée la trace par défaut (default trace). Elle porte l’identifiant 1 et est activée par
défaut. Elle n’est pas listée par sys.traces, mais vous pouvez utiliser la fonction
fn_trace_getinfo pour la voir :
SELECT * FROM fn_trace_getinfo(1);
Précédent

- 124/334

Suivant