

# Establecimiento de indicadores de rastreo en RDS for Microsoft SQL Server
<a name="Appendix.SQLServer.CommonDBATasks.TraceFlags"></a>

Un indicador de rastreo de SQL Server es una configuración que puede activar o desactivar para cambiar el comportamiento del motor de base de datos. Puede utilizar indicadores de rastreo para habilitar características ocultas, solucionar problemas de rendimiento o invalidar el comportamiento predeterminado del servidor. En efecto, cada indicador de rastreo actúa como un interruptor de encendido/apagado que cambia el comportamiento predeterminado de SQL Server.

Para obtener una lista completa de los indicadores de seguimiento disponibles en Microsoft SQL Server, consulte [DBCC TRACEON - Trace Flags](https://learn.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-traceon-trace-flags-transact-sql?view=sql-server-ver17#trace-flags) en la documentación de Microsoft.

Como se trata de un servicio administrado, RDS for SQL Server restringe la configuración global por servidor. Solo puede configurar indicadores de rastreo específicos como parámetros de inicio a través de [grupos de parámetros de base de datos](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/parameter-groups-overview.html) de RDS for SQL Server. En la tabla siguiente, se muestran los indicadores de rastreo admitidos en RDS for SQL Server.

**importante**  
Recomendamos encarecidamente que pruebe y valide minuciosamente antes de habilitar los indicadores de rastreo en producción. Los indicadores de seguimiento son útiles para ajustar el rendimiento y solucionar problemas, pero un uso incorrecto puede provocar inestabilidad, planes de consulta inadecuados o problemas con los recursos.


| Indicador de rastreo | Descripción | 
| --- | --- | 
| 647 | Omite una comprobación de validación de datos ingresada en SQL Server 2012 que puede provocar que las operaciones de columnas `ALTER TABLE... ADD` se ejecuten de forma considerablemente más lenta. | 
| 652 | Desactiva la captura previa de páginas para los análisis. Cuando está habilitado, SQL Server deja de cargar páginas en el grupo de búferes antes de tiempo. Esto podría reducir el rendimiento de las consultas que dependen de la captura previa. | 
| 692 | Desactiva las inserciones rápidas mientras se cargan datos de forma masiva en el montón o en los índices agrupados en clústeres (admitidos en SQL Server 2016 y versiones posteriores). | 
| 1204 | Devuelve los recursos y los tipos de bloqueos que participan en un interbloqueo y el comando actual afectado. | 
| 1211 | Desactiva la escalada de bloqueos en función de la presión de la memoria o del número de bloqueos. SQL Server no escalará los bloqueos de filas o páginas a bloqueos de tablas. | 
| 1222 | Devuelve la información de interbloqueo en formato XML (versión mejorada de 1204). | 
| 1224 | Desactiva la escalada de bloqueos en función del número de bloqueos (la presión de la memoria aún puede activar la escalada de bloqueos). | 
| 1448 | Permite que el lector de registros de replicación avance sin esperar a que los secundarios asíncronos confirmen los cambios. El lector de registros sigue esperando a que los secundarios síncronos estén en estado `SYNCHRONIZED`. No avanza más allá de su número de secuencia de registro (LSN) mínimo reconocido. | 
| 2528 | Desactiva la comprobación paralela de objetos mediante `DBCC CHECKDB`, `DBCC CHECKFILEGROUP` y `DBCC CHECKTABLE`. | 
| 3654 | Se utiliza para solucionar problemas de pérdida de memoria o problemas de memoria no liberada. Cuando está activo, si se detecta un problema de este tipo, SQL Server desencadena un error de aserción y genera un minivolcado. El volcado se debe a que el rastreo mejorado detecta el error de memoria subyacente, no al propio indicador de rastreo. | 
| 4138 | Desactiva los ajustes de objetivos de fila para las consultas que utilizan `TOP`, `OPTION (FAST N)`, `IN` o `EXISTS`. Esto obliga a SQL Server a generar un plan completo sin optimizaciones de objetivos de fila. | 
| 4139 | Ajusta el histograma en el momento de la compilación de la consulta para una mejor estimación de la cardinalidad, independientemente de si la columna principal es ascendente, descendente o estacionaria. | 
| 4199 | Controla varios cambios en el optimizador de consultas realizados anteriormente bajo varios indicadores de rastreo. | 
| 4616 | Hace que los metadatos por servidor sean visibles para los roles de la aplicación. | 
| 6527 | Desactiva la generación de un volcado de memoria cuando se produce por primera vez una excepción de falta de memoria en la integración de Common Language Runtime (CLR). | 
| 7745 | Impide que el almacén de consultas vacíe los datos en el disco durante el cierre de la base de datos. | 
| 8285 | Corrige un error de aserción (`IndexRowScanner.cpp: m_versionStatus.IsVisible()`) en las bases de datos que tienen habilitada la captura de datos de cambios (CDC) o el aislamiento de instantáneas de lectura confirmada (RCSI). Evita los volcados de pila al convertir las aserciones en mensajes de error controlados (SQL Server 2022 actualización acumulativa (CU) 6 o posterior) o suprimiéndolas (SQL Server 2019). | 
| 8780 | Concede al optimizador más tiempo para encontrar un plan mejor. | 
| 9432 | Desactiva la corrección de SQL Server 2019 CU14 que corrigió los resultados incorrectos en planes paralelos que utilizan `SESSION_CONTEXT`. Se utiliza junto con el indicador de seguimiento 11042 para evitar volcados por infracción de acceso cuando se restablecen las sesiones para su reutilización. | 
| 9481 | Obliga al optimizador de consultas a utilizar el modelo de estimación de cardinalidad heredado (SQL Server 2012 y versiones anteriores), independientemente del nivel de compatibilidad de la base de datos. Alternativas: por base de datos, utilice `ALTER DATABASE SCOPED CONFIGURATION`; por consulta, utilice la sugerencia de consulta `QUERYTRACEON`. | 
| 9492 | Desactiva el paralelismo en las operaciones `SELECT INTO` (inserción masiva) por instancia para reducir las esperas de `LATCH_EX` en `METADATA_SEQUENCE_GENERATOR`. Puede reducir ligeramente el rendimiento, pero mejora la estabilidad general. | 
| 9592 | Permite la compresión de flujos de registro para grupos de disponibilidad sincrónica. La compresión del flujo de registro está desactivada de forma predeterminada en los grupos de disponibilidad sincrónica porque la compresión agrega latencia. Al habilitarla, se puede reducir el uso del ancho de banda de la red entre las réplicas, a costa de una CPU adicional y un poco de latencia adicional. Se aplica a: SQL Server 2016 (13.0) y versiones posteriores. | 
| 11024 | En SQL Server 2017, la actualización automática de las estadísticas incrementales en las tablas particionadas se puede retrasar. Esto sucede porque el recuento de modificaciones del nodo raíz se restablece a cero si ninguna partición supera su umbral local, incluso cuando el recuento combinado supera el umbral raíz. El indicador de seguimiento 11024 corrige este problema al mantener el recuento de modificaciones del nodo raíz como la suma real de todas las modificaciones de la partición, lo que garantiza que las estadísticas se actualicen a tiempo. Se aplica a: SQL Server 2017 CU3 y versiones posteriores. | 
| 11042 | SQL Server 2019 CU14 corrigió los resultados incorrectos en los planes paralelos que utilizaban `SESSION_CONTEXT`. Sin embargo, esta solución puede provocar volcados de infracción de acceso cuando se restablecen las sesiones para volver a utilizarlas. Solución alternativa: habilite ambos indicadores de seguimiento juntos, el indicador de seguimiento 11042 (desactiva el paralelismo para `SESSION_CONTEXT`) y el indicador de seguimiento 9432 (desactiva la corrección CU14 original). Nota: Se trata de un problema conocido que sigue presente en las versiones más recientes de SQL Server. Está pendiente una solución permanente de Microsoft en una futura CU. | 
| 12502 | Corrige las altas esperas de `PREEMPTIVE_OS_QUERYREGISTRY` al desactivar las políticas de autorización externas para las instancias de SQL Server en las instalaciones. Se aplica a: SQL Server 2022 CU5\+. | 
| 12618 | Permite que la característica de corrección automática del plan (APC) realice varias comprobaciones de regresión consecutivas en el mismo plan, lo que permite recopilar más estadísticas antes de decidir una corrección. Se aplica a: SQL Server 2022 CU4 y posteriores. | 
| 12656 | Agrega un retraso de 5 minutos antes de que la corrección automática del plan (APC) ejecute su comprobación de regresión tras detectar un cambio de plan. Esto evita resultados sesgados de las consultas de ejecución rápida y tiene en cuenta las consultas de ejecución más prolongadas o propensas a agotar el tiempo de espera que se ven afectadas por el cambio. Se aplica a: SQL Server 2022 CU4\+. | 

**nota**  
A partir del Service Pack 1 (SP1) de SQL Server 2016 y versiones posteriores, recomendamos que se utilice la sugerencia de consulta `USE HINT` por consulta en lugar de los indicadores de seguimiento 4138 y 4139. Realice siempre pruebas exhaustivas antes de aplicar este cambio en la producción.

**importante**  
Si se utiliza el indicador de seguimiento 7745, es posible que los datos del almacén de consultas que no se hayan vaciado se pierdan durante el apagado. Para cerrar SQL Server de forma inmediata, utilice `SHUTDOWN WITH NOWAIT` en lugar de este indicador de seguimiento.