Symptomen
Neem het volgende scenario:
-
U hebt een query die een predicaat bevat dat een door de gebruiker gedefinieerde, scalaire scalaire functie omvat.
-
Er bestaan meerdere combinaties van ingevoerde parameterwaarden die hetzelfde resultaat kunnen leveren door deze door de gebruiker gedefinieerde functie.
-
In SQL Server wordt de nieuwe Cardinality huizenprijs taxatie gebruikt waarin de compatibiliteitsmodus voor database is ingesteld op 120.
Wanneer u de query uitvoert, ziet u in dit scenario de prestaties van de query zijn slecht vanwege een onjuist geraamd aantal rijen voor het predicaat waarbij de door de gebruiker gedefinieerde functie in het queryplan voorkomt.
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 1Nadat 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:
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.