sp_trace_create (Transact-SQL)
Crea una definición de seguimiento. El nuevo seguimiento estará en estado de detención.
Sintaxis
sp_trace_create [ @traceid = ] trace_id OUTPUT
, [ @options = ] option_value
, [ @tracefile = ] 'trace_file'
[ , [ @maxfilesize = ] max_file_size ]
[ , [ @stoptime = ] 'stop_time' ]
[ , [ @filecount = ] 'max_rollover_files' ]
Argumentos
[ @traceid= ] trace_id
Es el número que MicrosoftSQL Server asigna al nuevo seguimiento. Se pasará por alto cualquier entrada proporcionada por el usuario. trace_id es de tipo int y su valor predeterminado es NULL. El usuario emplea el valor de trace_id para identificar, modificar y controlar el seguimiento definido por este procedimiento almacenado.[ @options= ] option_value
Especifica las opciones establecidas para el seguimiento. option_value es de tipo int y no tiene ningún valor predeterminado. Los usuarios pueden elegir una combinación de estas opciones especificando el valor de la suma de las opciones seleccionadas. Por ejemplo, para activar ambas opciones, TRACE_FILE_ROLLOVER y SHUTDOWN_ON_ERROR, especifique 6 para option_value.En la tabla siguiente se muestran las opciones, las descripciones y sus valores.
Nombre de la opción
Valor de la opción
Descripción
TRACE_FILE_ROLLOVER
2
Especifica que al alcanzar el valor establecido en max_file_size, el archivo de seguimiento actual se cerrará y se creará un archivo. Todos los nuevos registros se escribirán en el archivo nuevo. El archivo nuevo tendrá el mismo nombre que el archivo anterior, pero se agregará un entero para indicar su secuencia. Por ejemplo, si el archivo de seguimiento original se llama FILENAME.TRC, siguiente archivo de seguimiento se llamará FILENAME_1.TRC, el siguiente archivo de seguimiento se llamará FILENAME_2.TRC, y así sucesivamente.
A medida que se creen más archivos de seguimiento de sustitución incremental, el valor entero agregado al nombre del archivo aumentará secuencialmente.
SQL Server utiliza el valor predeterminado de max_file_size (5 MB) si se especifica esta opción sin especificar un valor para max_file_size.
SHUTDOWN_ON_ERROR
4
Especifica que, si por cualquier razón, no se puede escribir el seguimiento en el archivo, SQL Server se cerrará. Esta opción es muy útil cuando se realizan seguimientos de auditoría de seguridad.
TRACE_PRODUCE_BLACKBOX
8
Especifica que el servidor guardará un registro de los últimos 5 MB de información de seguimiento producidos por el servidor. TRACE_PRODUCE_BLACKBOX es incompatible con las demás opciones.
[ @tracefile= ] 'trace_file'
Especifica la ubicación y el nombre de archivo en el que se escribirá el seguimiento. trace_file es de tipo nvarchar(245) y no tiene ningún valor predeterminado. trace_file puede ser un directorio local (como N 'C:\MSSQL\Trace\trace.trc') o bien un nombre UNC de un recurso compartido o una ruta de acceso (N'\\nombreDeServidor\nombreDeRecursoCompartido\directorio\trace.trc').SQL Server agregará una extensión .trc a todos los nombres de archivos de seguimiento. Si se especifica la opción TRACE_FILE_ROLLOVER y max_file_size, SQL Server crea un archivo de seguimiento cuando el archivo de seguimiento original alcanza su tamaño máximo. El nuevo archivo tiene el mismo nombre que el archivo original, pero se agrega _n para indicar una secuencia, empezando por 1. Por ejemplo, si el primer archivo de seguimiento se llama filename.trc, el segundo archivo de seguimiento se llamará filename_1.trc.
Si usa la opción TRACE_FILE_ROLLOVER, no es recomendable que emplee caracteres de subrayado en el nombre de archivo de seguimiento original. Si usa caracteres de subrayado, puede producirse el siguiente comportamiento:
SQL Server Profiler no carga automáticamente ni le solicita que cargue los archivos de sustitución incremental (si alguna de estas opciones de sustitución incremental de archivos está configurada).
La función fn_trace_gettable no carga los archivos de sustitución incremental (cuando esta opción está especificada a través del argumento number_files) si el nombre del archivo de seguimiento original termina con un carácter de subrayado y un valor numérico. (Esto no se aplica al carácter de subrayado y al número que se anexan automáticamente cuando un archivo realiza la sustitución incremental).
[!NOTA]
Para solucionar estos comportamientos, puede cambiar el nombre de los archivos de seguimiento y quitar los caracteres de subrayado del nombre de archivo original. Por ejemplo, si el archivo original se llamaba my_trace.trc y el archivo de sustitución incremental se llamaba my_trace_1.trc, puede cambiar su nombre a mytrace.trc y mytrace_1.trc antes de abrirlos en SQL Server Profiler.
trace_file no puede especificarse cuando se utiliza la opción TRACE_PRODUCE_BLACKBOX.
[ @maxfilesize= ] max_file_size
Especifica el tamaño máximo en megabytes (MB) que puede alcanzar un archivo de seguimiento. max_file_size es de tipo bigint y su valor predeterminado es 5.Si se especifica este parámetro sin la opción TRACE_FILE_ROLLOVER, el seguimiento detiene el registro en el archivo cuando el espacio en disco utilizado supera la cantidad especificada por max_file_size.
[ @stoptime= ] 'stop_time'
Especifica la fecha y la hora de la detención del seguimiento. stop_time es de tipo datetime y su valor predeterminado es NULL. Si es NULL, el seguimiento se ejecuta hasta que se detiene de forma manual o bien hasta que se cierra el servidor.Si se especifican stop_time y max_file_size, y no se especifica TRACE_FILE_ROLLOVER, el seguimiento se detiene cuando se alcanza la hora de detención especificada o el tamaño máximo de archivo. Si se especifican stop_time, max_file_size y TRACE_FILE_ROLLOVER, el seguimiento se detendrá a la hora de detención especificada (a menos que se haya llenado la unidad).
[ @filecount= ] 'max_rollover_files'
Especifica el número máximo de archivos de seguimiento que se pueden mantener con el mismo nombre de archivo base. max_rollover_files es de tipo int, mayor que uno. Este parámetro sólo es válido si se especifica la opción TRACE_FILE_ROLLOVER. Cuando se especifica max_rollover_files, SQL Server intenta mantener el número máximo de archivos de seguimiento indicado por max_rollover_files para ello, elimina el archivo de seguimiento más antiguo antes de abrir uno nuevo. SQL Server hace un seguimiento de la edad de los archivos de seguimiento agregando un número al nombre del archivo base.Por ejemplo, al especificar el parámetro trace_file como "c:\mytrace", un archivo con el nombre "c:\mytrace_123.trc" es anterior al archivo con el nombre "c:\mytrace_124.trc". Si el valor de max_rollover_files es 2, SQL Server eliminará el archivo "c:\mytrace_123.trc" antes de crear el archivo de seguimiento "c:\mytrace_125.trc".
Observe que SQL Server sólo intenta eliminar cada archivo una vez, y no puede eliminar un archivo que esté siendo utilizado en otro proceso. Por lo tanto, si otra aplicación está utilizando archivos de seguimiento mientras se ejecuta el seguimiento, puede que SQL Server deje estos archivos de seguimiento en el sistema de archivos.
Valores de código de retorno
En la tabla siguiente se describen los valores del código que los usuarios pueden obtener después de completar el procedimiento almacenado.
Código de retorno |
Descripción |
---|---|
0 |
Ningún error. |
1 |
Error desconocido. |
10 |
Opciones no válidas. Se devuelve cuando las opciones especificadas no son compatibles. |
12 |
Archivo no creado. |
13 |
Memoria insuficiente. Se devuelve cuando no hay memoria suficiente para realizar la acción especificada. |
14 |
Hora de detención no válida. Se devuelve cuando ya se ha alcanzado la hora de detención especificada. |
15 |
Parámetros no válidos. Se devuelve cuando el usuario ha proporcionado parámetros no compatibles. |
Notas
sp_trace_create es un procedimiento almacenado de SQL Server que realiza la mayor parte de las acciones que anteriormente ejecutaban los procedimientos almacenados extendidos xp_trace_* disponibles en versiones anteriores de SQL Server. Utilice sp_trace_create en lugar de:
xp_trace_addnewqueue
xp_trace_setqueuecreateinfo
xp_trace_setqueuedestination
sp_trace_create sólo crea una definición de seguimiento. Este procedimiento almacenado no se puede utilizar para iniciar o cambiar un seguimiento.
Los parámetros de todos los procedimientos almacenados de Seguimiento de SQL (sp_trace_xx) tienen establecimiento inflexible de tipos. Si no se llama a estos parámetros con los tipos de datos de parámetros de entrada correctos, según se especifica en la descripción del argumento, el procedimiento almacenado devolverá un error.
Para sp_trace_create, la cuenta del servicio SQL Server debe tener permiso de escritura en la carpeta de archivos de seguimiento. Si la cuenta del servicio SQL Server no es administrador en el equipo donde se encuentra el archivo de seguimiento, debe conceder explícitamente permiso de escritura a la cuenta del servicio SQL Server.
[!NOTA]
Puede cargar automáticamente el archivo de seguimiento creado con sp_trace_create en la tabla mediante la función del sistema fn_trace_gettable. Para obtener información acerca de cómo utilizar esta función del sistema, vea fn_trace_gettable (Transact-SQL)
Para obtener un ejemplo de cómo usar los procedimientos almacenados de seguimiento, vea Cómo crear una traza (Transact-SQL).
TRACE_PRODUCE_BLACKBOX tiene las características siguientes:
Es un seguimiento de sustitución incremental. El valor predeterminado de file_count es 2 pero el usuario puede invalidarlo con la opción filecount.
El valor predeterminado de file_size igual que en otros seguimientos es 5 MB y se puede cambiar.
No se puede especificar ningún nombre de archivo. El archivo se guardará como: N' %SQLDIR%\MSSQL\DATA\blackbox.trc'
Sólo los eventos siguientes y sus columnas están contenidos en el seguimiento:
RPC starting
Batch starting
Exception
Attention
Los eventos o columnas no se pueden agregar o quitar de este seguimiento.
No se pueden especificar filtros para este seguimiento.
Permisos
El usuario debe tener permiso ALTER TRACE.
Historial de cambios
Contenido actualizado |
---|
Se ha agregado la recomendación de evitar los caracteres de subrayado en el nombre de archivo de seguimiento original a la descripción del argumento @tracefile. |
Vea también