Symptomen
Stel dat u Microsoft SQL Server 2017 of 2019 hebt geïnstalleerd en dat deze wordt uitgevoerd met standaard Cardinality Estimation (CE). U voert een query uit met een filterpredikaat in kolom Col1. Querypredicaten hebben een intrinsieke HOOFDLETTERS, KLEINE.LETTERS of RTRIM. Col1 heeft statistieken die door de optimizer moeten worden gebruikt. In dit scenario ziet u mogelijk onnauwkeurige kardinaliteitschattingen en gebruikt SQL Server een inefficiënt plan. Hieronder volgen enkele query's met predicaten:
SELECT person_id FROM Person WHERE (e-mail LIKE UPPER(N'@live.com%'))
SELECT person_id FROM Person WHERE (email = UPPER(N'msft@live.com'))
Status
Microsoft heeft bevestigd dat dit een probleem is bij de Microsoft-producten die worden vermeld in het gedeelte 'Van toepassing op'.
Oplossing
Dit probleem is opgelost in de volgende cumulatieve updates voor SQL Server:
Over cumulatieve updates voor SQL Server:
Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingspatches die deel uitmaakten van de vorige cumulatieve update. Bekijk de meest recente cumulatieve updates voor SQL Server:
- Meest recente cumulatieve update voor SQL Server 2019
- Meest recente cumulatieve update voor SQL Server 2017
Notitie Voor deze oplossing moet een van de volgende opties van kracht worden:
- QUERY_OPTIMIZER_HOTFIXES configuratie binnen het databasebereik ingesteld op AAN
- Gebruik de ENABLE_QUERY_OPTIMIZER_HOTFIXES TIP GEBRUIKEN
- Trace Flag 4199 inschakelen
Meer informatie
Meer informatie over de terminologie die Microsoft gebruikt om software-updates te beschrijven.