KB3005300 – RETTELSE: Højt CPU-forbrug, når du bruger afstandsdatatype og tilknyttede metoder i SQL Server 2012 eller SQL Server 2014

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

Symptomer

Når du bruger den afstandslige datatype og tilknyttede metoder i Microsoft SQL Server 2012 eller Microsoft SQL Sever 2014, er SQLOS-planlægningsprogrammet (SQL Server Operating System) kvantemål beskyttet af SQL Server CLR-værtslaget. Denne beskyttelse omfatter forebyggende SQLOS-switche, der kan øge CPU-forbruget. Årsagen til det forebyggende skift er for at beskytte SQLOS-planlæggeren. Et kald til en SQL Server CLR-baseret implementering kan tage uspecificeret tid, uden at der gives efter for SQLOS-planlæggeren eller ændre funktionsmåden og samtidighedsmønstrene. Afstandsdatatypen er derfor designet til at skifte forebyggende under hver aktivering.

Bemærk Afstandsdatatypen er baseret på SQL Server CLR. Den kan støde på forskellige niveauer af .NET-hukommelsesforbrug og funktionsmåde for trådskift.

Årsag

Metoderne for afstandsdatatype Udførelser er normalt under millisekunder og kræver muligvis ikke den fulde SQL OS-planlægger og forebyggende beskyttelse. Omkostningerne ved at skifte til og fra forebyggende tilstand kan være meget større end udførelsen af selve den rumlige metode.

Løsning

Denne rettelse introducerer sporingsflaget 6531 for at indikere over for SQLOS-værtslaget, at den afstandslige datatype bør undgå forebyggende beskyttelse. Dette kan reducere CPU-forbruget og forbedre den overordnede ydeevne for rumlige aktiviteter. Brug kun dette sporingsflag, hvis de individuelle, rumlige metodeaktiveringer (pr. række og kolonne) tager mindre end ~4 ms. Længere aktiveringer uden forebyggende beskyttelse kan føre til problemer med planlægningssamtidighed og SQLCLR-straffemeddelelser, der logføres i fejlloggen.

Problemet blev først løst i følgende kumulative opdatering af SQL Server.

Samlet opdatering 4 til SQL Server 2012 SP2 /en-us/help/3007556

Kumulativ opdatering 5 til SQL Server 2014 /en-us/help/3011055

Samlet opdatering 13 til SQL Server 2012 SP1 /en-us/help/3002044

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".