Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette rubrique explique comment utiliser des procédures stockées pour créer une trace.
Pour créer une trace
Exécutez sp_trace_create avec les paramètres requis pour créer une trace. La nouvelle trace sera dans un état arrêté (l’état est 0).
Exécutez sp_trace_setevent avec les paramètres requis pour sélectionner les événements et les colonnes à suivre.
Si vous le souhaitez, exécutez sp_trace_setfilter pour définir n’importe quel ou une combinaison de filtres.
sp_trace_setevent et sp_trace_setfilter peuvent être exécutés uniquement sur les traces existantes qui sont arrêtées.
Important
Contrairement aux procédures stockées régulières, 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 du type de données. Si ces paramètres ne sont pas appelés avec les types de données de paramètre d’entrée corrects, comme spécifié 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 se trouve dans 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 que vous souhaitez tracer. Pour obtenir la liste des événements et des colonnes, consultez sp_trace_setevent (Transact-SQL).
Le code suivant crée une trace, ajoute des événements à la trace, puis démarre la trace :
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 suivant pour remplir la trace 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 suivant pour arrêter la trace, fermer la trace et supprimer la définition de trace.
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)