Symptomen
Neem het volgende scenario:
-
U hebt een query die gebruikmaakt van een niet-afliggend predicaat van een unieke GUID-kolom in SQL Server 2014 of 2016.
-
De statistieken worden bijgewerkt met behulp van standaardmonsters. U kunt ook nieuwe rijen in de tabel invoegen na de laatste wijziging van de statistieken.
-
In SQL Server wordt de nieuwe Cardinality huizenprijs taxatie gebruikt waarin de compatibiliteitsmodus voor database is ingesteld op 120.
-
De GUID-waarden worden niet gelijkmatig verdeeld over de hele tabel.
In dit scenario wanneer u de query uitvoert, ondervindt u mogelijk slechtere prestaties vanwege een onjuist geraamd aantal rijen voor het predicaat in het queryplan.
Oplossing
Dit probleem is voor het eerst opgelost in de volgende cumulatieve update voor SQL Server:
Cumulatieve update 6 voor SQL server 2014 Service Pack 1 cumulatief update 1 voor SQL Server 2016Nadat u dit cumulatieve updatepakket hebt geïnstalleerd, moet u traceringsvlag 4199 inschakelen. U kunt dit doen door de opstartparameter -T4199 toe te voegen. U kunt ook de DBCC traceon (4199) -instructie voor een bepaalde sessie gebruiken.
Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingsoplossingen die zijn opgenomen in de vorige cumulatieve update. Bekijk de nieuwste cumulatieve updates voor SQL Server:
Nieuwste cumulatieve update voor SQL Server 2014Nieuwste cumulatieve update voor SQL Server 2016
Status
Microsoft heeft bevestigd dat dit probleem zich kan voordoen in de Microsoft-producten die worden vermeld in de sectie Van toepassing op.
Verwijzingen
Informatie over de terminologie die door Microsoft wordt gebruikt om software-updates te beschrijven.