Een tracering maken (Transact-SQL)
van toepassing op:SQL Server-
In dit onderwerp wordt beschreven hoe u opgeslagen procedures gebruikt om een tracering te maken.
Een tracering maken
Voer sp_trace_create uit met de vereiste parameters om een nieuwe tracering te maken. De nieuwe tracering heeft een gestopte status (status is 0).
Voer sp_trace_setevent uit met de vereiste parameters om de gebeurtenissen en kolommen te selecteren die u wilt traceren.
Voer desgewenst sp_trace_setfilter uit om een of meer filters in te stellen.
sp_trace_setevent en sp_trace_setfilter kunnen alleen worden uitgevoerd op bestaande traceringen die zijn gestopt.
Belangrijk
In tegenstelling tot normale opgeslagen procedures worden parameters van alle opgeslagen SQL Server Profiler-procedures (sp_trace_xx) strikt getypt en bieden geen ondersteuning voor automatische conversie van gegevenstypen. Als deze parameters niet worden aangeroepen met de juiste invoerparametergegevenstypen, zoals opgegeven in de beschrijving van het argument, retourneert de opgeslagen procedure een fout.
Voorbeelden
De volgende code laat zien hoe u een tracering maakt met Behulp van Transact-SQL. Het bevindt zich in drie secties: het maken van de tracering, het vullen van het traceringsbestand en het stoppen van de tracering. Pas de tracering aan door de gebeurtenissen toe te voegen die u wilt traceren. Zie sp_trace_setevent (Transact-SQL)voor de lijst met gebeurtenissen en kolommen.
Een. Een tracering maken
Met de volgende code wordt een trace gemaakt, gebeurtenissen aan de trace toegevoegd en wordt de tracering gestart:
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
B. Het traceringsbestand vullen
Nu de tracering is gemaakt en gestart, voert u de volgende code uit om de tracering te vullen met activiteit.
SELECT * FROM master.sys.databases
GO
SELECT * FROM ::fn_trace_getinfo(default)
GO
C. De tracering stoppen
De tracering kan op elk gewenst moment worden gestopt en opnieuw worden gestart. Voer in dit voorbeeld de volgende code uit om de tracering te stoppen, de tracering te sluiten en de traceringsdefinitie te verwijderen.
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
D. Het traceringsbestand onderzoeken
Als u het traceringsbestand wilt onderzoeken, opent u het bestand SampleTrace.trc met behulp van SQL Server Profiler.
Zie ook
opgeslagen procedures van SQL Server Profiler (Transact-SQL)
sp_trace_create (Transact-SQL)
sp_trace_setevent (Transact-SQL)
sp_trace_setfilter (Transact-SQL)