Marcas de seguimiento (Transact-SQL)

Las marcas de seguimiento se utilizan para establecer temporalmente características específicas del servidor o para desactivar un comportamiento determinado. Por ejemplo, si se establece la marca de seguimiento 3205 cuando se inicia una instancia de SQL Server, se deshabilita la compresión de hardware para controladores de cinta. Las marcas de seguimiento se suelen utilizar para diagnosticar problemas de rendimiento o para depurar procedimientos almacenados o sistemas complejos.

En la siguiente tabla se enumeran y se describen las marcas de seguimiento disponibles en SQL Server.

Nota

Es posible que en versiones futuras de SQL Server no se admita el comportamiento de las marcas de seguimiento.

marca de seguimiento

Descripción

260

Imprime información de versión sobre las bibliotecas de vínculos dinámicos (DLL) de procedimientos almacenados extendidos. Para obtener más información acerca de __GetXpVersion(), vea Crear procedimientos almacenados extendidos.

Ámbito: global o sesión

1204

Devuelve los recursos y los tipos de bloqueos que participan en un interbloqueo, además del comando actual afectado.

Ámbito: solo global

1211

Deshabilita la extensión de bloqueo basada en la presión de memoria o en el número de bloqueos. El SQL Server Database Engine (Motor de base de datos de SQL Server) no extenderá los bloqueos de fila o página a bloqueos de tabla.

El uso de esta marca de seguimiento puede dar lugar a un número excesivo de bloqueos. Esto puede reducir el rendimiento del Motor de base de datos o causar errores 1204 (no se puede asignar el recurso de bloqueo) debido a memoria insuficiente. Para obtener más información, vea Concentración de bloqueos (motor de base de datos).

Si se establecen las marcas de seguimiento 1211 y 1224, la marca 1211 tiene prioridad sobre 1224. Sin embargo, como la marca de seguimiento 1211 evita la extensión en cada caso, incluso bajo presión de memoria, recomendamos que utilice 1224. Esto ayuda a evitar errores de "bloqueos insuficientes" cuando se utilizan muchos bloqueos.

Ámbito: global o sesión

1222

Devuelve los recursos y los tipos de bloqueos que participan en un interbloqueo, además del comando actual afectado, en un formato XML que no se ajusta a ningún esquema XSD.

Ámbito: solo global

1224

Deshabilita la extensión de bloqueo en función del número de bloqueos. No obstante, la presión de memoria puede activar la extensión de bloqueo. El Motor de base de datos extiende los bloqueos de fila o página a bloqueos de tabla (o partición) si la cantidad de memoria usada por los objetos de bloqueo supera una de las siguientes condiciones:

  • Cuarenta por ciento de la memoria que utiliza Motor de base de datos, exclusiva de asignación de memoria con extensiones de ventana de dirección (AWE). Esto solo se aplica cuando el parámetro locks de sp_configure está establecido en 0.

  • Cuarenta por ciento de la memoria de bloqueo que se configura mediante el parámetro locks de sp_configure. Para obtener más información, vea Establecer las opciones de configuración del servidor.

Si se establecen las marcas de seguimiento 1211 y 1224, la marca 1211 tiene prioridad sobre 1224. Sin embargo, como la marca de seguimiento 1211 evita la extensión en cada caso, incluso bajo presión de memoria, recomendamos que utilice 1224. Esto ayuda a evitar errores de "bloqueos insuficientes" cuando se utilizan muchos bloqueos.

NotaNota
La extensión de bloqueo a la granularidad de nivel de tabla o de HoBT también se puede controlar utilizando la opción LOCK_ESCALATION de la instrucción ALTER TABLE.

Ámbito: global o sesión

2528

Deshabilita la comprobación en paralelo de objetos por parte de DBCC CHECKDB, DBCC CHECKFILEGROUP y DBCC CHECKTABLE. De manera predeterminada, el procesador de consultas determina automáticamente el grado de paralelismo. El grado de paralelismo máximo se configura igual que el de las consultas en paralelo. Para obtener más información, vea max degree of parallelism (opción).

DBCC en paralelo debe continuar habilitado. En el caso de DBCC CHECKDB, el procesador de consultas vuelve a evaluar y ajusta automáticamente el paralelismo con cada tabla o lote de tablas comprobados. Algunas veces la comprobación puede comenzar cuando el servidor está casi inactivo. Un administrador que sabe que la carga aumentará antes de que finalice la comprobación puede que desee reducir o deshabilitar el paralelismo de forma manual.

Deshabilitar la comprobación en paralelo de DBCC puede causar que DBCC tarde mucho más en completarse, además si DBCC se ejecuta con la característica TABLOCK habilitada y el paralelismo desactivado, es posible bloquear las tablas durante un período de tiempo más largo.

Ámbito: global o sesión

3205

De manera predeterminada, si una unidad de cinta admite compresión de hardware, la utilizan las instrucciones DUMP o BACKUP. Con esta marca de seguimiento, puede deshabilitar la compresión de hardware de los controladores de cinta. Esto es útil cuando se desea intercambiar cintas con otros sitios o unidades de cinta que no admitan compresión.

Ámbito: global o sesión

3226

De forma predeterminada, cada operación de copia de seguridad correcta agrega una entrada en el registro de errores de SQL Server y en el registro de eventos del sistema. Si crea copias de seguridad de registros con mucha frecuencia, estos mensajes de corrección se acumulan rápidamente y se provoca que los registros de errores sean muy grandes y se dificulte mucho la búsqueda de otros mensajes en ellos.

Con esta marca de seguimiento puede suprimir estas entradas de registro. Esto resulta útil si ejecuta frecuentemente copias de seguridad de registros y ninguno de los scripts depende de esas entradas.

3608

Evita que SQL Server se inicie automáticamente y recupere cualquier base de datos excepto la base de datos maestra. Las bases de datos se iniciarán y se recuperarán cuando se tenga acceso a ellas. Algunas características, como el aislamiento SNAPSHOT y la instantánea READ COMMITED, puede que no funcionen. Se usa para Mover bases de datos del sistema y Mover bases de datos de usuario. No se debe utilizar durante el funcionamiento normal.

3625

Limita la cantidad de información devuelta a los usuarios que no son miembros de la función fija de servidor sysadmin mediante el enmascaramiento de los parámetros de algunos mensajes de error utilizando '******'. Esto puede ayudar a evitar la divulgación de información confidencial.

Ámbito: solo global

4199

Controla múltiples cambios del optimizador de consultas realizados anteriormente en múltiples marcas de seguimiento. Para obtener más información, vea este artículo de Soporte técnico de Microsoft.

Ámbito: global o sesión

4616

Hace que los metadatos en el nivel de servidor sean visibles para las funciones de aplicación. En SQL Server, un rol de aplicación no puede tener acceso a los metadatos que se encuentran fuera de su propia base de datos porque los roles de aplicación no están asociados a una entidad de seguridad de nivel de servidor. Es un cambio de comportamiento con respecto a versiones anteriores de SQL Server. Si se establece esta marca global, se deshabilitan las nuevas restricciones, lo que permite a los roles de aplicación tener acceso a los metadatos del servidor.

Ámbito: solo global

6527

Deshabilita la generación de un volcado de memoria en la primera aparición de una excepción de memoria insuficiente en la integración de CLR. De forma predeterminada,SQL Server genera un volcado de memoria pequeño en la primera aparición de una excepción de memoria insuficiente en el CLR. El comportamiento de la marca de seguimiento es el siguiente:

  • Si se utiliza como marca de seguimiento de inicio, nunca se genera un volcado de memoria. Sin embargo, se puede generar un volcado de memoria si se utilizan otras marcas de seguimiento.

  • Si esta marca de seguimiento se habilita en un servidor en ejecución, no se generará automáticamente un volcado de memoria a partir de ese punto. Sin embargo, si ya se ha generado un volcado de memoria debido a una excepción de memoria insuficiente en el CLR, esta marca de seguimiento no tendrá ningún efecto.

Ámbito: solo global

7806

Habilita una conexión de administrador dedicada (DAC) en SQL Server Express. De manera predeterminada, no se reservan recursos DAC en SQL Server Express. Para obtener más información, vea Usar una conexión de administrador dedicada.

Ámbito: solo global

Comentarios

En SQL Server existen dos tipos de marcas de seguimiento: de sesión y globales. Las marcas de seguimiento de sesión se activan para una conexión y solo están visibles para esa conexión. Las marcas de seguimiento globales se establecen en el nivel del servidor y están visibles para todas las conexiones del servidor. Algunas marcas solo pueden habilitarse como globales y algunas pueden habilitarse con un ámbito global o de sesión.

Se aplican las reglas siguientes:

  • Una marca de seguimiento global debe habilitarse a nivel global. De lo contrario, no surtirá efecto. Es recomendable habilitar las marcas de seguimiento globales en el inicio, mediante la opción de línea de comandos -T.

  • Si una marca de seguimiento tiene ámbito global o de sesión, puede habilitarse con el ámbito apropiado. Una marca de seguimiento habilitada en el nivel de sesión nunca afecta a otra sesión y su efecto se pierde cuando el SPID que inició la sesión la cierra.

Las marcas de seguimiento se activan o se desactivan mediante uno de los siguientes métodos:

  • Mediante los comandos DBCC TRACEON y DBCC TRACEOFF.

    Por ejemplo, DBCC TRACEON 2528: para habilitar la marca de seguimiento a nivel global, utilice DBCC TRACEON con el argumento -1: DBCC TRACEON (2528, -1). Para desactivar una marca de seguimiento global, use DBCC TRACEOFF con el argumento -1.

  • Use la opción de inicio -T para especificar que la marca de seguimiento se activa durante el inicio.

    La opción de inicio -T habilita una marca de seguimiento globalmente. No puede habilitar una marca de seguimiento de nivel de sesión mediante una opción de inicio. Para obtener más información acerca de opciones de inicio, vea Usar las opciones de inicio del servicio SQL Server.

Use el comando DBCC TRACESTATUS para determinar qué marcas de seguimiento están activas actualmente.

Cambios de comportamiento

En SQL Server 2000, un simple comando DBCC TRACEON (1204) es suficiente para habilitar la notificación de interbloqueos en el registro de errores. En SQL Server 2008, debe habilitar la marca a nivel global, ya que la marca de nivel de sesión no es visible para el subproceso de supervisión de interbloqueos.

Para obtener más información acerca de los cambios de comportamiento, vea Principales cambios en las características del Motor de base de datos de SQL Server 2008 R2.

Ejemplos

En el siguiente ejemplo se activa la marca de seguimiento 3205 mediante DBCC TRACEON.

DBCC TRACEON (3205,-1)

Historial de cambios

Contenido actualizado

Se ha agregado la marca de seguimiento 4199