Síntomas
La lógica de estimación de cardinalidad conocida como estimador de cardinalidad (CE) se rediseñó en SQL Server 2014 (niveles de compatibilidad 120) y SQL Server 2016 (niveles de compatibilidad 130) para mejorar la calidad de los planes de consulta.
Sin embargo, al compilar una consulta compleja que contiene muchas combinaciones con un operador DISTINCT o GROUP BY, la compilación puede llevar mucho más tiempo del esperado.
Resolución
Esta actualización que corrige este problema se incluye en el Service Pack 1 para SQL Server 2016.
Nota: Después de instalar esta actualización, debe establecer la marca de seguimiento 4199 para habilitar la corrección. Para establecer la marca de seguimiento 4199, consulte el tema Marcas de seguimiento (Transact-SQL) en MSDN.
Acerca de las compilaciones de SQL Server 2016
Cada compilación nueva para SQL Server 2016 contiene todas las revisiones y correcciones de seguridad que se incluyeron con la compilación anterior. Se recomienda instalar la compilación más reciente para SQL Server 2016.
Solución alternativa
Para resolver este problema, use uno de los métodos siguientes:
- Utilice la marca de seguimiento 9481 para establecer el modelo de estimación de cardinalidad del optimizador de consultas en SQL Server 2012 o una versión anterior.
- Cambie el nivel de compatibilidad de la base de datos a SQL Server 2012 (110) o a una versión anterior.
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".
Referencias
Obtenga información sobre la terminología que usa Microsoft para describir las actualizaciones de software.