sp_trace_create (Transact-SQL)sp_trace_create (Transact-SQL)

SI APPLICA A: sìSQL Server (a partire dalla versione 2008) noDatabase SQL di Azure noAzure SQL Data Warehouse noParallel Data Warehouse APPLIES TO: yesSQL Server (starting with 2008) noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Crea la definizione di una nuova tracciaCreates a trace definition. nello stato arrestato.The new trace will be in a stopped state.

Importante

Questa funzionalità è in manutenzione e potrebbe essere rimossa in una delle prossime versioni di Microsoft SQL Server.This feature is in maintenance mode and may be removed in a future version of Microsoft SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.Avoid using this feature in new development work, and plan to modify applications that currently use this feature. In alternativa, usare Eventi estesi.Use Extended Events instead.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintassiSyntax

  
sp_trace_create [ @traceid = ] trace_id OUTPUT   
          , [ @options = ] option_value   
          , [ @tracefile = ] 'trace_file'   
     [ , [ @maxfilesize = ] max_file_size ]  
     [ , [ @stoptime = ] 'stop_time' ]  
     [ , [ @filecount = ] 'max_rollover_files' ]  

ArgomentiArguments

[ @traceid = ] trace_id È il numero assegnato dal MicrosoftMicrosoft SQL ServerSQL Server alla nuova traccia.[ @traceid = ] trace_id Is the number assigned by MicrosoftMicrosoft SQL ServerSQL Server to the new trace. Qualsiasi input dell'utente verrà ignorato.Any user-provided input will be ignored. trace_id viene int, con un valore predefinito è NULL.trace_id is int, with a default of NULL. L'utente usa il trace_id valore da identificare, modificare e controllare la traccia definita dalla stored procedure.The user employs the trace_id value to identify, modify, and control the trace defined by this stored procedure.

[ @options = ] option_value Specifica le opzioni impostate per la traccia.[ @options = ] option_value Specifies the options set for the trace. option_value viene int, non prevede alcun valore predefinito.option_value is int, with no default. Gli utenti possono impostare una combinazione di queste opzioni specificando la somma dei valori delle opzioni scelte.Users may choose a combination of these options by specifying the sum value of options picked. Ad esempio, per abilitare entrambe le opzioni TRACE_FILE_ROLLOVER e SHUTDOWN_ON_ERROR, specificare 6 per option_value.For example, to turn on both the options TRACE_FILE_ROLLOVER and SHUTDOWN_ON_ERROR, specify 6 for option_value.

Nella tabella seguente sono incluse le opzioni e le descrizioni, accompagnate dai relativi valori.The following table lists the options, descriptions, and their values.

Nome opzioneOption name Valore opzioneOption value DescrizioneDescription
TRACE_FILE_ROLLOVERTRACE_FILE_ROLLOVER 22 Specifica che quando la max_file_size viene raggiunta, corrente file di traccia è chiuso e viene creato un nuovo file.Specifies that when the max_file_size is reached, the current trace file is closed and a new file is created. in cui verranno scritti tutti i nuovi record.All new records will be written to the new file. Il nome del nuovo file è uguale a quello del file precedente, ma è seguito da un numero intero a indicare la sequenza.The new file will have the same name as the previous file, but an integer will be appended to indicate its sequence. Se, ad esempio, il nome del file di traccia originale è nomefile.trc, i successivi file di traccia verranno denominati nomefile_1.trc, nomefile_2.trc e così via.For example, if the original trace file is named filename.trc, the next trace file is named filename_1.trc, the following trace file is filename_2.trc, and so on.

Man mano che vengono creati nuovi file di traccia di rollover, viene incrementato in modo sequenziale il numero aggiunto nel nome del file.As more rollover trace files are created, the integer value appended to the file name increases sequentially.

SQL Server Usa il valore predefinito max_file_size (5 MB) se questa opzione viene specificata senza specificare un valore per max_file_size.SQL Server uses the default value of max_file_size (5 MB) if this option is specified without specifying a value for max_file_size.
SHUTDOWN_ON_ERRORSHUTDOWN_ON_ERROR 44 Specifica che se non è possibile scrivere nel file per un qualsiasi motivo, SQL Server viene arrestato.Specifies that if the trace cannot be written to the file for whatever reason, SQL Server shuts down. Questa opzione risulta utile quando si eseguono tracce di controllo della sicurezza.This option is useful when performing security audit traces.
TRACE_PRODUCE_BLACKBOXTRACE_PRODUCE_BLACKBOX 88 Specifica che il server salverà un record contenente gli ultimi 5 MB di informazioni di traccia generate dal server.Specifies that a record of the last 5 MB of trace information produced by the server will be saved by the server. TRACE_PRODUCE_BLACKBOX è incompatibile con tutte le altre opzioni.TRACE_PRODUCE_BLACKBOX is incompatible with all other options.

[ @tracefile = ] 'trace_file' Specifica il percorso e nome del file a cui verrà scritta la traccia.[ @tracefile = ] 'trace_file' Specifies the location and file name to which the trace will be written. trace_file viene nvarchar(245) non prevede alcun valore predefinito.trace_file is nvarchar(245) with no default. trace_file può essere una directory locale (ad esempio N 'C:\MSSQL\Trace\trace.trc') o un percorso UNC di una condivisione o un percorso (N'\\Servername\nomecondivisione \ Directory\trace.trc').trace_file can be either a local directory (such as N 'C:\MSSQL\Trace\trace.trc') or a UNC to a share or path (N'\\Servername\Sharename\Directory\trace.trc').

SQL ServerSQL Server Aggiunge un trc estensione a tutti i nomi di file di traccia.will append a .trc extension to all trace file names. Se l'opzione TRACE_FILE_ROLLOVER e un max_file_size vengono specificati, SQL ServerSQL Server crea un nuovo file di traccia quando il file di traccia originale aumenta le dimensioni massime.If the TRACE_FILE_ROLLOVER option and a max_file_size are specified, SQL ServerSQL Server creates a new trace file when the original trace file grows to its maximum size. Il nuovo file con lo stesso nome di file originale, ma _n viene aggiunto per indicare la sequenza, a partire 1.The new file has the same name as the original file, but _n is appended to indicate its sequence, starting with 1. Ad esempio, se il primo file di traccia è denominato nomefile. trc, il secondo file di traccia è denominato nomefile_1.trc.For example, if the first trace file is named filename.trc, the second trace file is named filename_1.trc.

Se si utilizza l'opzione TRACE_FILE_ROLLOVER, si consiglia di non utilizzare caratteri di sottolineatura nel nome del file di traccia originale.If you use the TRACE_FILE_ROLLOVER option, we recommend that you do not use underscore characters in the original trace file name. Se vengono utilizzati caratteri di sottolineatura, si verifica il comportamento seguente:If you do use underscores, the following behavior occurs:

  • SQL Server ProfilerSQL Server Profiler non carica automaticamente o richiedere agli utenti di caricare i file di rollover (se una di queste opzioni di rollover dei file sono configurata).does not automatically load or prompt you to load the rollover files (if either of these file rollover options are configured).

  • La funzione fn_trace_gettable non carica i file di rollover (quando specificata utilizzando il number_files argomento) in cui il nome file originale termina con un carattere di sottolineatura e un valore numerico.The fn_trace_gettable function does not load rollover files (when specified by using the number_files argument) where the original file name ends with an underscore and a numeric value. Ciò non vale per il carattere di sottolineatura e il numero che vengono aggiunti automaticamente all'esecuzione del rollover di un file.(This does not apply to the underscore and number that are automatically appended when a file rolls over.)

Nota

Come soluzione alternativa a entrambi questi comportamenti, è possibile rinominare i file in modo da rimuovere i caratteri di sottolineatura nel nome del file originale.As a workaround for both of these behaviors, you can rename the files to remove the underscores in the original file name. Ad esempio, se il file originale è denominato my_trace. trc, e il file di rollover è denominato my_trace_1.trc, è possibile rinominare i file da mytrace. trc emytrace_1.trc prima di aprire i file in SQL Server ProfilerSQL Server Profiler.For example, if the original file is named my_trace.trc, and the rollover file is named my_trace_1.trc, you can rename the files to mytrace.trc and mytrace_1.trc before you open the files in SQL Server ProfilerSQL Server Profiler.

trace_file non può essere specificato quando si usa l'opzione TRACE_PRODUCE_BLACKBOX.trace_file cannot be specified when the TRACE_PRODUCE_BLACKBOX option is used.

[ @maxfilesize = ] max_file_size Specifica che le dimensioni massime in megabyte (MB) un file di traccia possono raggiungere.[ @maxfilesize = ] max_file_size Specifies the maximum size in megabytes (MB) a trace file can grow. valore di max_file_size viene bigint, con valore predefinito è 5.max_file_size is bigint, with a default value of 5.

Se questo parametro viene specificato senza l'opzione TRACE_FILE_ROLLOVER, la traccia viene arrestata la registrazione al file quando lo spazio su disco utilizzato supera la quantità specificata da max_file_size.If this parameter is specified without the TRACE_FILE_ROLLOVER option, the trace stops recording to the file when the disk space used exceeds the amount specified by max_file_size.

[ @stoptime = ] 'stop_time' Specifica la data e ora che la traccia verrà arrestata.[ @stoptime = ] 'stop_time' Specifies the date and time the trace will be stopped. stop_time viene datetime, con un valore predefinito è NULL.stop_time is datetime, with a default of NULL. Se il valore è NULL, la traccia viene eseguita fino a quando non viene arrestata in modo manuale o fino all'arresto del server.If NULL, the trace runs until it is manually stopped or until the server shuts down.

Se entrambe stop_time e max_file_size vengono specificati, e TRACE_FILE_ROLLOVER, non è specificato, la traccia alto quando viene raggiunta l'ora di arresto specificata o dimensioni massime del file.If both stop_time and max_file_size are specified, and TRACE_FILE_ROLLOVER is not specified, the trace tops when either the specified stop time or maximum file size is reached. Se stop_time, max_file_sizee vengono specificati TRACE_FILE_ROLLOVER, la traccia viene arrestata all'ora specificata, presupponendo che la traccia non è riempire l'unità.If stop_time, max_file_size, and TRACE_FILE_ROLLOVER are specified, the trace stops at the specified stop time, assuming the trace does not fill up the drive.

[ @filecount = ] 'max_rollover_files' Specifica il massimo numero di file di traccia da mantenere con lo stesso nome di file di base.[ @filecount = ] 'max_rollover_files' Specifies the maximum number or trace files to be maintained with the same base filename. MAX_ROLLOVER_FILES viene int, maggiore di uno.max_rollover_files is int, greater than one. Questo parametro è valido solo se è specificata l'opzione TRACE_FILE_ROLLOVER.This parameter is valid only if the TRACE_FILE_ROLLOVER option is specified. Quando max_rollover_files è specificato, SQL ServerSQL Server prova a mantenere no oltre max_rollover_files eliminando il file di traccia meno recente prima di aprire un nuovo file di traccia.When max_rollover_files is specified, SQL ServerSQL Server tries to maintain no more than max_rollover_files trace files by deleting the oldest trace file before opening a new trace file. In SQL ServerSQL Server viene tenuto traccia dell'età dei file di traccia aggiungendo un numero al nome del file di base.SQL ServerSQL Server tracks the age of trace files by appending a number to the base file name.

Ad esempio, quando la trace_file parametro viene specificato come "c:\mytrace", un file con il nome "c:\mytrace_123.trc" è meno di un file con il nome "c:\mytrace_124.trc".For example, when the trace_file parameter is specified as "c:\mytrace", a file with the name "c:\mytrace_123.trc" is older than a file with the name "c:\mytrace_124.trc". Se max_rollover_files è impostato su 2, SQL Server eliminerà il file "c:\mytrace_123.trc" prima di creare il file di traccia "c:\mytrace_125.trc".If max_rollover_files is set to 2, then SQL Server deletes the file "c:\mytrace_123.trc" before creating the trace file "c:\mytrace_125.trc".

Si noti che SQL ServerSQL Server tenta di eliminare un file una sola volta e non può eliminare un file se questo è utilizzato da un altro processo.Notice that SQL ServerSQL Server only tries to delete each file once, and cannot delete a file that is in use by another process. Se, pertanto, un'altra applicazione sta utilizzando i file di traccia mentre è in esecuzione la traccia, è possibile che tali file vengano lasciati nel file system da SQL ServerSQL Server.Therefore, if another application is working with trace files while the trace is running, SQL ServerSQL Server may leave these trace files in the file system.

Valori restituitiReturn Code Values

Nella tabella seguente vengono descritti i possibili valori di codice visualizzati al completamento della stored procedure.The following table describes the code values that users may get following completion of the stored procedure.

Codice restituitoReturn code DescrizioneDescription
00 Nessun errore.No error.
11 Errore sconosciuto.Unknown error.
1010 Opzioni non valide.Invalid options. Restituito quando le opzioni specificate sono incompatibili.Returned when options specified are incompatible.
1212 Creazione del file non riuscita.File not created.
1313 Memoria esaurita.Out of memory. Restituito quando la quantità di memoria disponibile non è sufficiente per eseguire l'azione specificata.Returned when there is not enough memory to perform the specified action.
1414 Ora di arresto non valida.Invalid stop time. Restituito quando l'ora specificata è già trascorsa.Returned when the stop time specified has already happened.
1515 Parametri non validi.Invalid parameters. Restituito quando l'utente specifica parametri incompatibili.Returned when the user supplied incompatible parameters.

NoteRemarks

sp_trace_create è un SQL ServerSQL Server stored procedure che esegue molte delle azioni eseguite dalle xp_trace _* disponibili nelle versioni precedenti di SQL Server stored procedure estese.sp_trace_create is a SQL ServerSQL Server stored procedure that performs many of the actions previously executed by xp_trace_* extended stored procedures available in earlier versions of SQL Server. Uso sp_trace_create invece di:Use sp_trace_create instead of:

  • xp_trace_addnewqueuexp_trace_addnewqueue

  • xp_trace_setqueuecreateinfoxp_trace_setqueuecreateinfo

  • xp_trace_setqueuedestinationxp_trace_setqueuedestination

sp_trace_create crea solo una definizione di traccia.sp_trace_create only creates a trace definition. non per avviare o modificare una traccia.This stored procedure cannot be used to start or change a trace.

I parametri di traccia SQL tutte le stored procedure (sp_trace_xx) sono fortemente tipizzati.Parameters of all SQL Trace stored procedures (sp_trace_xx) are strictly typed. Se questi parametri non vengono chiamati con i tipi di dati corretti per i parametri di input, come indicato nella descrizione dell'argomento, la stored procedure restituirà un errore.If these parameters are not called with the correct input parameter data types, as specified in the argument description, the stored procedure will return an error.

Per la sp_trace_create, il SQL ServerSQL Server account del servizio deve avere l'autorizzazione di scrittura per la cartella di file di traccia.For sp_trace_create, the SQL ServerSQL Server service account must have Write permission on the trace file folder. Se l'account del servizio SQL ServerSQL Server non è un amministratore nel computer in cui si trova il file di traccia, è necessario concedere esplicitamente l'autorizzazione di scrittura all'account del servizio SQL ServerSQL Server.If the SQL ServerSQL Server service account is not an administrator on the computer where the trace file is located, you must explicitly grant Write permission to the SQL ServerSQL Server service account.

Nota

È possibile caricare automaticamente il file di traccia creato con sp_trace_create in una tabella tramite il fn_trace_gettable funzione di sistema.You can automatically load the trace file created with sp_trace_create into a table by using the fn_trace_gettable system function. Per informazioni su come usare questa funzione di sistema, vedere sys.fn_trace_gettable (Transact-SQL).For information about how to use this system function, see sys.fn_trace_gettable (Transact-SQL).

Per un esempio dell'uso di stored procedure relative alla traccia, vedere Creare una traccia (Transact-SQL).For an example of using trace stored procedures, see Create a Trace (Transact-SQL).

TRACE_PRODUCE_BLACKBOX presenta le caratteristiche seguenti:TRACE_PRODUCE_BLACKBOX has the following characteristics:

  • È costituito da una traccia di rollover.It is a rollover trace. Il valore predefinito conteggio_file è 2, ma può essere sottoposto a override dall'utente utilizzando filecount opzione.The default file_count is 2 but can be overridden by the user using filecount option.

  • Il valore predefinito file_size Analogamente alle altre tracce è 5 MB e può essere modificato.The default file_size as with other traces is 5 MB and can be changed.

  • Non è possibile specificare alcun nome di file.No filename can be specified. Il file verrà salvato come N'%SQLDIR%\MSSQL\DATA\blackbox.trc'The file will be saved as: N'%SQLDIR%\MSSQL\DATA\blackbox.trc'

  • Nella traccia saranno contenuti solo gli eventi seguenti e le relative colonne:Only the following events and their columns are contained in the trace:

    • Avvio RPCRPC starting

    • Avvio batchBatch starting

    • EccezioneException

    • AttenzioneAttention

  • Non è possibile aggiungere o rimuovere eventi o colonne da questa traccia.Events or columns cannot be added or removed from this trace.

  • Non è possibile specificare i filtri per questa traccia.Filters cannot be specified for this trace.

PermissionsPermissions

L'utente deve disporre delle autorizzazioni ALTER TRACE.User must have ALTER TRACE permission.

Vedere ancheSee Also

sp_trace_generateevent (Transact-SQL) sp_trace_generateevent (Transact-SQL)
sp_trace_setevent (Transact-SQL) sp_trace_setevent (Transact-SQL)
sp_trace_setfilter (Transact-SQL) sp_trace_setfilter (Transact-SQL)
sp_trace_setstatus (Transact-SQL) sp_trace_setstatus (Transact-SQL)
Traccia SQLSQL Trace