Créer une trace (Transact-SQL)
Cette rubrique explique comment créer une trace à l'aide de procédures stockées.
Pour créer une trace
Exécutez sp_trace_create avec les paramètres nécessaires afin de créer une nouvelle trace. La nouvelle trace est à l’état arrêté (status a la valeur 0).
Exécutez sp_trace_setevent avec les paramètres requis pour choisir les événements et les colonnes que vous voulez tracer.
Vous pouvez aussi exécuter sp_trace_setfilter pour définir un ou plusieurs filtres.
sp_trace_setevent et sp_trace_setfilter ne peuvent être exécutées que sur des traces existantes arrêtées.
Important
Contrairement aux procédures stockées standard, les paramètres de toutes les procédures stockées SQL Server Profiler (sp_trace_xx) sont strictement typés et ne prennent pas en charge la conversion automatique des types de données. Si ces paramètres ne sont pas appelés à l'aide des types de données appropriés pour les paramètres d'entrée tels qu'ils sont spécifiés dans la description de l'argument, la procédure stockée retourne une erreur.
Exemple
Le code suivant illustre la création d’une trace à l’aide de Transact-SQL. Il est divisé en trois sections : création de la trace, remplissage du fichier de trace et arrêt de la trace. Personnalisez la trace en ajoutant les événements dont vous souhaitez effectuer le suivi. Pour obtenir la liste des événements et des colonnes, consultez sp_trace_setevent (Transact-SQL).
Le code suivant crée une trace, y ajoute des événements, puis la démarre :
DECLARE @RC int, @TraceID int, @on BIT
EXEC @rc = sp_trace_create @TraceID output, 0, N'C:\SampleTrace'
-- Select the return code to see if the trace creation was successful.
SELECT RC = @RC, TraceID = @TraceID
-- Set the events and data columns you need to capture.
SELECT @on = 1
-- 10 is RPC:Completed event. 1 is TextData column.
EXEC sp_trace_setevent @TraceID, 10, 1, @on
-- 13 is SQL:BatchStarting, 11 is LoginName
EXEC sp_trace_setevent @TraceID, 13, 11, @on
-- 13 is SQL:BatchStarting, 14 is StartTime
EXEC sp_trace_setevent @TraceID, 13, 14, @on
-- 12 is SQL:BatchCompleted, 15 is EndTime
EXEC sp_trace_setevent @TraceID, 12, 15, @on
-- 13 is SQL:BatchStarting, 1 is TextData
EXEC sp_trace_setevent @TraceID, 13, 1, @on
-- Set any filter. Not provided in this example
--EXEC sp_trace_setfilter 1, 10, 0, 6, N'%Profiler%'
-- Start Trace (status 1 = start)
EXEC @RC = sp_trace_setstatus @TraceID, 1
GO
Exemple
Maintenant que la trace a été créée et démarrée, exécutez le code ci-dessous pour la remplir avec l'activité.
SELECT * FROM master.sys.databases
GO
SELECT * FROM ::fn_trace_getinfo(default)
GO
Exemple
La trace peut être arrêtée et redémarrée à tout moment. Dans cet exemple, exécutez le code ci-dessous pour arrêter et fermer la trace, puis supprimer sa définition.
DECLARE @TraceID int
-- Populate a variable with the trace_id of the current trace
SELECT @TraceID = TraceID FROM ::fn_trace_getinfo(default) WHERE VALUE = N'C:\SampleTrace.trc'
-- First stop the trace.
EXEC sp_trace_setstatus @TraceID, 0
-- Close and then delete its definition from SQL Server.
EXEC sp_trace_setstatus @TraceID, 2
Exemple
Pour examiner le fichier de trace, ouvrez le fichier SampleTrace.trc à l'aide de SQL Server Profiler.
Voir aussi
Procédures stockées du Générateur de profils SQL Server (Transact-SQL)
sp_trace_create (Transact-SQL)
sp_trace_setevent (Transact-SQL)
sp_trace_setfilter (Transact-SQL)