KB4522127 - CORRECCIÓN: Un rendimiento deficiente de las consultas debido a una estimación de cardinalidad baja en SQL Server de 2016 cuando se usa CE y columna predeterminada está cubierto por estadísticas de una o varias columnas

Se aplica a
SQL Server 2016 Service Pack 2 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Síntomas

Supongamos que ejecuta una consulta que implica una combinación o agregación en una columna que está cubierta por estadísticas de una y varias columnas (en las que esta columna no es la columna principal). Si utiliza el estimador de cardinalidad (CE) predeterminado en SQL Server 2016, puede subestimar el número de filas distintas. Esto conduce a un plan de ejecución de consultas poco óptimo (por ejemplo, una estimación baja puede provocar una concesión de memoria insuficiente para un operador hash, lo que hace que la consulta se desborde a tempdb).

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Resolución

Este problema se corrige en la siguiente actualización acumulativa para SQL Server:

Nota Para que esta corrección surta efecto, debe habilitar las revisiones del optimizador de consultas mediante la marca de seguimiento (TF) 4199 o la opción correspondiente de configuración con ámbito de base de datos o sugerencia de consulta.

      

Acerca de las actualizaciones acumulativas para SQL Server:

Cada nueva actualización acumulativa para SQL Server contiene todas las revisiones y correcciones de seguridad que se incluyeron con la actualización acumulativa anterior. Consulte las actualizaciones acumulativas más recientes para SQL Server:

Solución alternativa

Este problema se puede solucionar agregando la siguiente sugerencia de consulta:

USE HINT('FORCE_LEGACY_CARDINALITY_ESTIMATION')

Referencias

Obtenga información sobre la terminología que usa Microsoft para describir las actualizaciones de software.