Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Det här avsnittet beskriver hur du använder lagrade procedurer för att skapa en spårning.
Så här skapar du en spårning
Kör sp_trace_create med de parametrar som krävs för att skapa en ny spårning. Den nya spårningen är i ett stoppat tillstånd (status är 0).
Kör sp_trace_setevent med de parametrar som krävs för att välja de händelser och kolumner som ska spåras.
Du kan också köra sp_trace_setfilter för att ange valfri eller en kombination av filter.
sp_trace_setevent och sp_trace_setfilter kan endast köras på befintliga spårningar som är stoppade.
Viktig
Till skillnad från vanliga lagrade procedurer är parametrarna för alla lagrade SQL Server Profiler-procedurer (sp_trace_xx) strikt inskrivna och stöder inte automatisk datatypskonvertering. Om dessa parametrar inte anropas med rätt datatyper för indataparametrar, som anges i argumentbeskrivningen, returnerar den lagrade proceduren ett fel.
Exempel
Följande kod visar hur du skapar en spårning med Hjälp av Transact-SQL. Den finns i tre avsnitt: skapa spårningen, fylla i spårningsfilen och stoppa spårningen. Anpassa spårningen genom att lägga till de händelser som du vill spåra. En lista över händelser och kolumner finns i sp_trace_setevent (Transact-SQL).
A. Skapa en spårning
Följande kod skapar en spårning, lägger till händelser i spårningen och startar sedan spårningen:
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. Fyll i spårningsfilen
Nu när spårningen har skapats och startats kör du följande kod för att fylla spårningen med aktivitet.
SELECT * FROM master.sys.databases
GO
SELECT * FROM ::fn_trace_getinfo(default)
GO
C. Stoppa spårningen
Spårningen kan stoppas och startas om när som helst. I det här exemplet kör du följande kod för att stoppa spårningen, stänga spårningen och ta bort spårningsdefinitionen.
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. Granska spårningsfilen
Om du vill undersöka spårningsfilen öppnar du filen SampleTrace.trc med hjälp av SQL Server Profiler.
Se även
Lagrade procedurer för SQL Server-profiler (Transact-SQL)
sp_trace_create (Transact-SQL)
sp_trace_setevent (Transact-SQL)
sp_trace_setfilter (Transact-SQL)