KB2952101 – RETTELSE: Dårlig estimering af kardinalitet, når den stigende nøglekolonne er mærket som stationær i SQL Server

Gælder for
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Symptomer

Antag, at du forsøger at indsætte værdier i den foranstillede indekskolonne i Microsoft SQL Server 2012 eller SQL Server 2014. Når færre end 90 procent af de indsatte rækker har værdier, der ligger ud over den højeste RANGE_HI_KEY værdi i histogrammet, betragtes kolonnen som stationær i stedet for stigende. Derfor registreres den stigende nøgle ikke, og sporingsflagene 2389 og 2390, der normalt bruges til at løse problemet med stigende nøgler, virker ikke. Dette forårsager dårlig estimering af kardinalitet, når du bruger prædikater, der ligger ud over den RANGE_HI_KEY værdi af den eksisterende statistik.

Bemærk, at når du anvender denne samlede opdatering, skal du aktivere sporingsflag 4139. Dette medfører, at SQL Server altid ændrer histogrammet i det beskrevne scenarie uanset status for den foranstillede kolonne (stigende, faldende eller stationær).

Løsning

Dette problem blev først rettet i følgende kumulative opdateringer til SQL Server:

Kumulativ opdatering 1 til SQL Server 2012 SP2
        
         Samlet opdatering 2 til SQL Server 2014
        
         Kumulativ opdatering 10 til SQL Server 2012 SP1

Om kumulative opdateringer til SQL Server

Hver ny kumulativ opdatering til SQL Server indeholder alle de hotfixes og alle de sikkerhedsrettelser, der fulgte med den forrige kumulative opdatering. Se de seneste kumulative opdateringer til SQL Server:

      

Status

Microsoft har bekræftet, at dette er et problem i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".