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 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.

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 condiciones siguientes:

  • Cuarenta por ciento de la memoria usada por el Motor de base de datos. 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 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.

[!NOTA]

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

Ámbito: global o sesión

1448

Permite el lector del registro de replicación desplazarse hacia delante aunque los secundarios asincrónicos no hayan confirmado la recepción de un cambio. Incluso con esta marca de seguimiento habilitada, el lector de registros espera siempre a los secundarios de sincronización. El lector de registros no irá más allá de la confirmación mínima de los secundarios de sincronización. Esta marca de seguimiento se aplica a la instancia de SQL Server, no solo a un grupo disponibilidad, una base de datos de disponibilidad o una instancia del lector de registros. Surte efecto inmediatamente sin reiniciar. Esta marca de seguimiento puede activarse antes de tiempo o cuando se produce un error en los secundarios asincrónicos.

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 Establecer la opción de configuración del servidor Grado máximo de paralelismo.

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

3042

Omite el algoritmo de preasignación de compresión de copia de seguridad predeterminada para permitir que el archivo de copia de seguridad crezca solo lo necesario para alcanzar su tamaño final. Esta marca de seguimiento es útil si tiene que ahorrar espacio asignando solo el tamaño real requerido para la copia de seguridad comprimida. El uso de esta marca de seguimiento podría ocasionar una ligera reducción en el rendimiento (un posible aumento de la duración de la operación de copia de seguridad).

Para obtener más información sobre el algoritmos de preasignación, vea Compresión de copia de seguridad (SQL Server).

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. Si se inician actividades que exigen tempdb, se recupera modelo y se crea tempdb. Las bases de datos de usuario se iniciarán y se recuperarán cuando se obtenga 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 del rol fijo de servidor sysadmin mediante el enmascaramiento de los parámetros de algunos mensajes de error con '******'. Esto puede ayudar a evitar la divulgación de información confidencial.

Ámbito: solo global

4199

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

Ámbito: global o sesión

4616

Hace que los metadatos de servidor sean visibles para los roles 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 Conexión de diagnóstico para administradores de bases de datos.

Ámbito: solo global

8032

Revierte los parámetros de límite de la memoria caché al valor SQL Server 2005 de RTM que en general permite que las memorias caché sean mayores. Utilice este valor cuando las entradas de caché que se reutlizan con frecuencia no quepan en la memoria caché y cuando la optimize for ad hoc workloads (opción de configuración del servidor) no pueda resolver el problema con la memoria caché del plan.

Nota de advertenciaAdvertencia

La marca de seguimiento 8032 puede ocasionar la degradación del rendimiento si las memorias caché grandes suponen que haya menos memoria disponible para otros consumidores de memoria, como el grupo de búferes.

8207

Habilita las actualizaciones de singleton para la replicación transaccional. Las actualizaciones a los suscriptores pueden replicarse como un par DELETE e INSERT. Esto podría no satisfacer las reglas de negocios, por ejemplo, la activación de un desencadenador UPDATE. Con la marca de seguimiento 8207, una actualización en una columna única que afecta solo a una fila (una actualización de singleton) se replica como UPDATE, no como un par DELETE e INSERT. Si la actualización afecta a una columna en la que tiene una restricción única o si la actualización afecta a varias filas, la actualización se sigue replicando como un par DELETE e INSERT.

9485

Deshabilita el permiso SELECT para DBCC SHOW_STATISTICS.

Comentarios

En SQL Server, hay dos tipos de marcas de seguimiento: sesión y global. 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 global, use 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 a nivel global. 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 Opciones de inicio del servicio de motor de base de datos.

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

Ejemplos

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

DBCC TRACEON (3205,-1)

Vea también

Referencia

Tipos de datos (Transact-SQL)

DBCC INPUTBUFFER (Transact-SQL)

DBCC OUTPUTBUFFER (Transact-SQL)

DBCC TRACEOFF (Transact-SQL)

DBCC TRACEON (Transact-SQL)

DBCC TRACESTATUS (Transact-SQL)

EXECUTE (Transact-SQL)

SELECT (Transact-SQL)

SET NOCOUNT (Transact-SQL)