Symptomer
Overvej følgende scenarie:
-
Du bruger en database med kompatibilitetsniveauet angivet til 130 i Microsoft SQL Server 2016.
-
Du udfører en forespørgsel, der åbner et kolonnelagerindeks og et rækkelagerindeks eller en heap, og omfatter et filterprædikat (WHERE-delsætning).
I dette scenarie kan SQL Server ikke skubbe filterprædikatet tættere på datakildeoperatoren (scanning eller søgning i tabeller eller indeks). Dette kan medføre en ikke-optimal forespørgselsydeevne.
Hvis forespørgslen anvender et udtryk (f.eks. typekonvertering), hvor korrektheden afhænger af filtrerede data (f.eks. konverteres en tegntabelkolonne til heltal, men kun et undersæt af værdier indeholder en gyldig intrepræsentation, og dette undersæt identificeres af filterprædikatet), kan forespørgslen mislykkes med en datakonverteringsfejl, der ligner en af følgende:
Msg 245, niveau 16, tilstand 1, linje 20
konvertering mislykkedes, når varchar-værdien '0,5' konverteres til datatype int. Msg 8114, niveau 16, tilstand 5, linje 34 Fejl ved konvertering af datatype varchar til bigint.Løsning
Dette problem er rettet i følgende kumulative opdatering til SQL Server:Samlet opdatering 2 til SQL Server 2016 SP1
Bemærk! Du skal aktivere hotfixes til forespørgselsoptimering, for at denne rettelse kan træde i kraft.
Du kan aktivere hotfixes til forespørgselsoptimering ved hjælp af en af følgende indstillinger: sporingsflag 4199, indstilling for konfiguration af databaseomfang QUERY_OPTIMIZER_HOTFIXES=ON (tilgængelig i SQL Server 2016 og nyere) eller USE_HINT forespørgselsindstilling "ENABLE_QUERY_OPTIMIZER_HOTFIXES" (tilgængelig i SQL Server 2016 SP1 og nyere).
Hver ny samlet opdatering til SQL Server indeholder alle de hotfixes og alle de sikkerhedsrettelser, der var inkluderet i den tidligere akkumulerede opdatering. Se de seneste kumulative opdateringer til SQL Server:Seneste kumulative opdatering til SQL Server 2016
Status
Microsoft har bekræftet, at problemet findes i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".
Referencer
Få mere at vide om den terminologi, som Microsoft bruger til at beskrive softwareopdateringer.