Marcadores 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: sólo global |
1211 |
Deshabilita la extensión de bloqueo basada en la presión de la 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 Database Engine (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: sólo global |
1224 |
Deshabilita la extensión de bloqueo en función del número de bloqueos. No obstante, la presión de la memoria puede activar la extensión de bloqueo. El Database Engine (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:
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 del 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 este marcador 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 recuperarán en el acceso. 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 en los mensajes de error. Para obtener más información, vea Configuración de visibilidad de los metadatos. Ámbito: sólo global |
4616 |
Hace que los metadatos de servidor sean visibles para las funciones de aplicación. En SQL Server, una función de aplicación no puede tener acceso a los metadatos que se encuentran fuera de su propia base de datos porque las funciones de aplicación no están asociadas a una entidad de seguridad 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 las funciones de aplicación tener acceso a los metadatos del servidor. Ámbito: sólo 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 del marcador de seguimiento es el siguiente:
Ámbito: sólo 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: sólo global |
Notas
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 sólo 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 sólo 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 a nivel global. No puede habilitar una marca de seguimiento a 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 Cambios recientes en las características del Motor de base de datos de SQL Server 2008.
Ejemplos
En el siguiente ejemplo se activa la marca de seguimiento 3205 mediante DBCC TRACEON.
DBCC TRACEON (3205,-1)