Creare una traccia (Transact-SQL)Create a Trace (Transact-SQL)

In questo argomento viene descritto come utilizzare stored procedure per creare una traccia.This topic describes how to use stored procedures to create a trace.

Per creare una tracciaTo create a trace

  1. Eseguire sp_trace_create con i parametri necessari per creare una nuova traccia.Execute sp_trace_create with the required parameters to create a new trace. La nuova traccia sarà in stato di arresto (status uguale a 0).The new trace will be in a stopped state (status is 0).

  2. Eseguire sp_trace_setevent con i parametri necessari per selezionare gli eventi e le colonne da tracciare.Execute sp_trace_setevent with the required parameters to select the events and columns to trace.

  3. Facoltativamente, eseguire sp_trace_setfilter per impostare qualsiasi filtro o una combinazione di filtri.Optionally, execute sp_trace_setfilter to set any or a combination of filters.

    È possibile eseguiresp_trace_setevent e sp_trace_setfilter solo su tracce esistenti arrestate.sp_trace_setevent and sp_trace_setfilter can be executed only on existing traces that are stopped.

    Importante

    A differenza di quanto avviene con le normali stored procedure, i parametri di tutte le stored procedure di SQL Server Profiler (sp_trace_xx) sono rigidamente tipizzati e non supportano la conversione automatica del tipo di dati.Unlike regular stored procedures, parameters of all SQL Server Profiler stored procedures (sp_trace_xx**) are strictly typed and do not support automatic data type conversion. Se tali parametri non vengono chiamati con i tipi di dati corretti per i parametri di input, come indicato nella descrizione dell'argomento, la stored procedure restituisce un errore.If these parameters are not called with the correct input parameter data types, as specified in the argument description, the stored procedure returns an error.

EsempioExample

Nell'esempio di codice riportato di seguito viene illustrata la creazione di una traccia utilizzando Transact-SQLTransact-SQL.The following code demonstrates creating a trace using Transact-SQLTransact-SQL. L'esempio è costituito da tre sezioni, relative alla creazione della traccia, al popolamento del file di traccia e all'arresto della traccia.It is in three sections: creating the trace, populating the trace file, and stopping the trace. Personalizzare la traccia aggiungendo gli eventi per cui si desidera eseguirla.Customize the trace by adding the events that you want to trace. Per l'elenco di eventi e colonne, vedere sp_trace_setevent (Transact-SQL).For the list of events and columns, see sp_trace_setevent (Transact-SQL).

Nel codice seguente viene creata una traccia, vengono aggiunti eventi, quindi viene avviata la traccia:The following code creates a trace, adds events to the trace, and then starts the 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  

EsempioExample

Dopo che la traccia è stata creata e avviata, eseguire il codice seguente per popolare la traccia con attività.Now that the trace has been created and started, execute the following code to populate the trace with activity.

SELECT * FROM master.sys.databases  
GO  
SELECT * FROM ::fn_trace_getinfo(default)  
GO  

EsempioExample

La traccia può essere arrestata e riavviata in qualsiasi momento.The trace can be stopped and restarted at any time. In questo esempio eseguire il seguente codice per arrestare e chiudere la traccia e successivamente eliminarne la definizione.In this example, execute the following code to stop the trace, close the trace, and delete the trace definition.

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  

EsempioExample

Per esaminare il file di traccia, aprire il file SampleTrace.trc utilizzando SQL Server ProfilerSQL Server Profiler.To examine the trace file, open the SampleTrace.trc file using SQL Server ProfilerSQL Server Profiler.

Vedere ancheSee Also

Stored procedure di SQL Server Profiler (Transact-SQL) SQL Server Profiler Stored Procedures (Transact-SQL)
sp_trace_create (Transact-SQL) sp_trace_create (Transact-SQL)
sp_trace_setevent (Transact-SQL) sp_trace_setevent (Transact-SQL)
sp_trace_setfilter (Transact-SQL) sp_trace_setfilter (Transact-SQL)