sp_trace_create (Transact-SQL)

Crea una definición de traza. El nuevo seguimiento estará en estado de detención.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

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 Microsoft SQL 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 la traza definida por este procedimiento almacenado.

  • [ @options= ] option_value
    Especifica las opciones establecidas para la traza. 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 traza 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 traza original se llama FILENAME.TRC, siguiente archivo de traza se llamará FILENAME_1.TRC, el siguiente archivo de traza se llamará FILENAME_2.TRC, y así sucesivamente.

    A medida que se creen más archivos de traza 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 la traza en el archivo, SQL Server se cerrará. Esta opción es muy útil cuando se realizan trazas 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 traza 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á la traza. 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 traza. Si se especifica la opción TRACE_FILE_ROLLOVER y max_file_size, SQL Server crea un archivo de traza cuando el archivo de traza 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 traza. 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, la traza detiene el registro en el archivo cuando el espacio en disco utilizado excede la cantidad especificada por max_file_size.

  • [ @stoptime= ] 'stop_time'
    Especifica la fecha y la hora de la detención de la traza. stop_time es de tipo datetime y su valor predeterminado es NULL. Si es NULL, la traza 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, la traza 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, la traza 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 traza 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 traza indicado por max_rollover_files para ello, elimina el archivo de traza más antiguo antes de abrir uno nuevo. SQL Server hace un seguimiento de la edad de los archivos de traza 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 traza "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 traza mientras se ejecuta la traza, puede que SQL Server deje estos archivos de traza 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.

Comentarios

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 traza. Este procedimiento almacenado no se puede utilizar para iniciar o cambiar una traza.

Los parámetros de todos los procedimientos almacenados de Traza 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 traza. Si la cuenta del servicio SQL Server no es administrador en el equipo donde se encuentra el archivo de traza, debe conceder explícitamente permiso de escritura a la cuenta del servicio SQL Server.

Nota

Puede cargar automáticamente el archivo de traza 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.