KB974006-indicador de seguimiento de revisión del optimizador de consultas de SQL Server 4199 modelo de mantenimiento

Se aplica a: Microsoft SQL Server 2005 Standard EditionMicrosoft SQL Server 2005 Enterprise EditionMicrosoft SQL Server 2005 Standard X64 Edition

INTRODUCCIÓN


Las versiones de Microsoft SQL Server posteriores a SQL Server 2000 Service Pack 3 (SP3) han entregado la mayoría de las revisiones al optimizador de consultas en un estado desactivado de forma predeterminada para evitar que los clientes de producción existentes puedan ver los cambios esperados del plan que podrían causar regresiones de rendimiento. En primer lugar, cada corrección se entregó en un indicador de seguimiento independiente. Más adelante, esta práctica se cambió de modo que la mayoría de las marcas se combinaran en una sola marca de seguimiento (4199). Este nuevo ejercicio se inició a través de varias versiones a partir de las siguientes actualizaciones:
  • Actualización acumulativa 6 de SQL Server 2005 Service Pack 3 (SP3)
  • Paquete de actualización acumulativa 7 de SQL Server 2008 Service Pack 1 (SP1)
  • SQL Server 2008 R2 (RTM)
La marca de seguimiento 4199 se usó para recopilar revisiones que se pretendían activar de forma predeterminada en una versión futura, mientras que otras marcas de seguimiento se usaban para situaciones en las que no se pretendía que una corrección estuviera activada de forma predeterminada en el formulario actual. A partir de SQL Server 2016 RTM, la configuración de COMPATIBILITY_LEVEL de la base de datos se usará habilitar revisiones relacionadas con el indicador de seguimiento 4199 de forma predeterminada. En este artículo se describe la mecánica y la Directiva de cómo se entregarán las revisiones que afectan a la planificación para SQL Server 2016 y versiones posteriores.

Más información


En SQL Server 2016, el indicador de seguimiento 4199 las revisiones que se realizan en las versiones anteriores de SQL Server se habilitan en la base de datos COMPATIBILITY_LEVEL 130 sin el marcador de seguimiento 4199 habilitado. La marca de seguimiento 4199 se usará para liberar todas las futuras revisiones de SQL Server 2016 para bases de datos usando el nivel de compatibilidad 130. Debido a que la marca de seguimiento 4199 solo se recomienda para clientes que experimentan problemas de rendimiento específicos, se recomienda a los clientes quitar la marca de seguimiento 4199 después de migrar sus bases de datos al nivel de compatibilidad más reciente, porque la marca de seguimiento 4199 se volverá a usar en las futuras soluciones que no se apliquen a su aplicación y podría causar cambios de rendimiento de plan inesperados Esto significa que se habilitan las distintas revisiones de la marca de seguimiento 4199 para cada nivel de compatibilidad que se admite en una versión de producto determinada. Elúltimo nivel de compatibilidad ya habilita todas las correcciones anteriores en la marca de seguimiento 4199. Esto significa que al actualizar una base de datos al nivel de compatibilidad más reciente y al quitar el indicador de traza 4199, se habilitan todas las correcciones que se han aprovechado antes de actualizar la base de datos, pero no nuevas. Si posteriormente los clientes experimentan problemas de rendimiento de consultas, pruebe a habilitar la opción de ámbito de base de datos QUERY_OPTIMIZER_HOTFIXES o la sugerencia de consulta ENABLE_QUERY_OPTIMIZER_HOTFIXES en un entorno de prueba para determinar si se han resuelto los problemas. Consulte la documentación sobre QUERY_OPTIMIZER_HOTFIXES

Nota De forma predeterminada, las bases de datos que se crean en SQL Server 2016 usan el nivel de compatibilidad 130 y tienen la nueva lógica de optimizador ya habilitada.La principal ventaja de este modelo es que reduce el riesgo de los sistemas de producción durante el proceso de actualización. Este enfoque separa la instalación de una nueva versión principal de SQL Server desde la habilitación automática de todos los cambios del procesador de consultas nuevos. Como las actualizaciones de versiones principales cambian el formato de archivo y no son reversibles, es una buena idea usar la configuración COMPATIBILITY_LEVEL, ya que esto permite a un cliente degradar rápidamente si se encuentra un problema de rendimiento de plan inesperado durante una actualización. Si un cliente encuentra un cambio de plan inesperado que bloquea una actualización de la aplicación, el cliente puede simplificar la situación aplicando una sugerencia de plan adecuada usando el almacén de consultas para forzar el plan anterior o puede facilitar la situación poniéndose en contacto con el servicio de asistencia al cliente de Microsoft para ayudarle con el problema para proporcionar una solución alternativa o un hotfix. Si se disminuyen todos los problemas, la actualización puede continuar. Los clientes deberían integrar esta capacidad en el plan de actualización de SQL Server 2016.En la tabla siguiente se explica el modelo sobre cómo funciona el indicador de traza 4199 a partir de SQL Server 2016.

Configuración Nivel de compatibilidad de SQL Indicador de traza 4199 Revisiones del optimizador antes de la versión RTM de SQL Server 2016 Revisiones del optimizador después de SQL Server 2016 RTM
uno. 120 Desactivado Habilitar Habilitar
2. 120 Activado Habilitada Habilitar
3. 130 Desactivado Habilitado por nivel de compatibilidad Habilitar
4. 130 Activado Habilitado por nivel de compatibilidad Habilitado por nivel de compatibilidad

Nota Se recomienda establecer la opción Nº 3 para los clientes que están recién actualizando a SQL Server 2016.Para las versiones principales después de SQL Server 2016, Microsoft planea continuar usando este modelo de mantenimiento para las revisiones del optimizador. De forma predeterminada, todos los indicadores de seguimiento 4199 de la versión anterior se habilitarán en el siguiente nivel de compatibilidad. Esto significa que el estado recomendado para los clientes después de que migren al nivel de compatibilidad más reciente tendrá la marca de seguimiento 4199 deshabilitada. Las revisiones posteriores usarían la marca de seguimiento 4199 para habilitar correcciones para los clientes que tienen que habilitar esas revisiones específicas en una aplicación. Se recomienda a los clientes que deshabiliten la marca de seguimiento 4199 después de que una aplicación se actualice al nivel de compatibilidad más reciente para evitar que se hayan habilitado de forma inesperada cambios futuros del optimizador en una aplicación. La actualización al nivel de compatibilidad más reciente y al quitar el indicador de traza 4199 aún permite todas las correcciones que se han aprovechado antes de la actualización, pero no nuevas.

Nota Aunque muchas revisiones del optimizador están habilitadas en la marca de seguimiento 4199, algunas usan otras marcas de seguimiento. La marca de seguimiento 4199 históricamente incluye marcas de seguimiento que son ampliamente aplicables y que pueden estar habilitadas de forma predeterminada en una versión futura. Los indicadores alternativos de seguimiento se usan en los Hotfix donde las condiciones son muy específicas para unos pocos clientes, donde la corrección puede provocar regresiones de rendimiento en otros tipos de aplicaciones, o donde la funcionalidad interna puede ver los cambios antes de que esté preparado para todos los usuarios. Microsoft continuará usando otras marcas de seguimiento según sea necesario para el servicio del producto.Nota Este artículo se centra en el modelo para publicar revisiones 4199 HotFixes en el último nivel de compatibilidad del producto más reciente. (En el momento de la publicación, esto es SQL Server 2016). Es posible que se publiquen revisiones del optimizador en versiones anteriores del mercado de SQL Server o en niveles de compatibilidad inferiores (120 o anteriores) de SQL Server 2016. Microsoft evaluará cada caso y determinará si usar la marca de seguimiento 4199 u otra marca de seguimiento. Puesto que los cambios que no son de Hotfix también están habilitados cuando se realiza un movimiento a un nivel de compatibilidad posterior, no hay una promesa específica que no se realicen cambios de plan durante una actualización (con o sin el indicador de traza 4199). Los clientes siempre deben probar los cambios en el nivel de compatibilidad con cuidado para las aplicaciones de producción y deben usar tecnologías de mitigación, como el almacén de consultas, si hay un problema de rendimiento relacionado con las opciones de plan.Como referencia, en la siguiente tabla se enumeran los indicadores de seguimiento que se usaron para las revisiones del procesador de consultas antes de la introducción de la marca de seguimiento 4199.

Artículo de Microsoft Knowledge Base Marca de seguimiento
318530 4101
940128 4102
919905 4103
920346 4104
920347 4105
922438 4106
923849 4107
926024 4108
926773 4109
933724 4110
934065 4111
946793 4115
950880 4116
948445 4117
942659 4119
953948 4120
942444 4121
946020 4122
948248 4124
949854 4125
959013 4126
953569 4127
955694 957872 4128
958547 4129
956686 4131
958006 4133
960770 4135*

SQL Server 2005

La corrección para este problema se publicó por primera vez en la actualización acumulativa 6 para SQL Server 2005 Service Pack 3. Para obtener más información acerca de este paquete de actualización acumulativa, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
974648 Paquete de actualización acumulativa 6 para SQL Server 2005 Service Pack 3
Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2005. Le recomendamos que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
960598 Las compilaciones de SQL Server 2005 que se lanzaron después de que se publicó SQL Server 2005 Service Pack 3
Los Hotfix 2005 de Microsoft SQL Server se crean para determinados Service Packs de SQL Server. Debe aplicar una revisión de SQL Server 2005 Service Pack 3 a una instalación de SQL Server 2005 Service Pack 3. De forma predeterminada, cualquier Hotfix proporcionado en un Service Pack de SQL Server se incluye en el siguiente Service Pack de SQL Server.

SQL Server 2008

La corrección para este problema se publicó por primera vez en la actualización acumulativa 7. Para obtener más información sobre cómo obtener este paquete de actualización acumulativa para SQL Server 2008, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
973601 Paquete de actualización acumulativa 7 para SQL Server 2008
Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2008. Le recomendamos que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
956909 Las compilaciones de SQL Server 2008 que se publicaron después de que se publicó SQL Server 2008

SQL Server 2008 SP1

La corrección para este problema se publicó por primera vez en la actualización acumulativa 7 para SQL Server 2008 Service Pack 1. Para obtener más información acerca de este paquete de actualización acumulativa, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
979065 Paquete de actualización acumulativa 7 para SQL Server 2008 Service Pack 1
Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2008. Le recomendamos que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
970365 Las compilaciones de SQL Server 2008 que se lanzaron después de publicar SQL Server 2008 Service Pack 1
Los Hotfix 2008 de Microsoft SQL Server se crean para determinados Service Packs de SQL Server. Debe aplicar una revisión de SQL Server 2008 Service Pack 1 a una instalación de SQL Server 2008 Service Pack 1. De forma predeterminada, cualquier Hotfix proporcionado en un Service Pack de SQL Server se incluye en el siguiente Service Pack de SQL Server.

SQL Server 2008 R2

En la versión de lanzamiento de SQL Server 2008 R2, se omitió por error la marca de seguimiento 4135 de la lista de indicadores de seguimiento que se pueden controlar mediante-T4199. Sin embargo, esto se ha solucionado en la actualización acumulativa 1 para SQL Server 2008 R2. Por tanto, para esta compilación y para SQL Server 2005 y SQL Server 2008 ediciones compatibles,-T4199 será suficiente para habilitar esta y otras marcas de seguimiento que se enumeran en este artículo.

SQL Server 2012 y versiones posteriores

La marca de seguimiento 4199 se incluye en las versiones de lanzamiento de SQL Server 2012 y versiones posteriores.

Cómo habilitar la marca de seguimiento 4199

Puede habilitar la marca de seguimiento 4199 al iniciar o en una sesión de usuario. Esta marca de seguimiento tiene un efecto de nivel global o de nivel de sesión. Para habilitar la marca de seguimiento 4199, use el comando DBCC TRACEON o use – T 4199 como parámetro de inicio. Si se usa DBCC TRACEON\TRACEOFF , esto no vuelve a generar un nuevo plan en caché para procedimientos almacenados. Los planes pueden estar en la caché que se crearon sin la marca de seguimiento. Para obtener información detallada sobre cómo habilitar o deshabilitar marcas de seguimiento y para las explicaciones de las marcas de seguimiento globales y de nivel de sesión, consulte los siguientes temas en SQL Server Books online:

Referencias


Para obtener más información sobre el esquema de nomenclatura de las actualizaciones de SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
822499 Nuevo esquema de nomenclatura para los paquetes de actualización de software de Microsoft SQL Server
Para obtener más información acerca de la terminología de actualizaciones de software, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
824684 Descripción de la terminología estándar utilizada para describir las actualizaciones de software de Microsoft