KB4538497 - CORRECCIÓN: Rendimiento lento de la consulta al usar predicados de consulta con UPPER, LOWER o RTRIM con CE predeterminado en SQL Server 2017 y 2019

Se aplica a
SQL Server 2017 on Windows SQL Server 2019 on Windows

Síntomas

Supongamos que tiene instalado Microsoft SQL Server 2017 o 2019 y que se ejecuta con la estimación de cardinalidad (CE) predeterminada. Ejecuta una consulta que tiene un predicado de filtro en la columna Col1. Los predicados de consulta tienen INTRÍNSECOS UPPER, LOWER o RTRIM. Col1 tiene estadísticas que utilizará el optimizador. En esta situación, puede observar que las estimaciones de cardinalidad son inexactas y que SQL Server utiliza un plan ineficaz. A continuación se indican algunas consultas que tienen predicados:

SELECT person_id FROM Person WHERE (email LIKE UPPER(N'@live.com%'))

SELECT person_id FROM Person WHERE (email = UPPER(N'msft@live.com'))

      

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 ha corregido en las siguientes actualizaciones acumulativas para SQL Server:

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:

Nota Esta corrección requiere una de las siguientes acciones para surtir efecto:

Referencias

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