KB3005300 - FIX: hoog CPU-verbruik wanneer u ruimtelijk gegevenstype en bijbehorende methoden gebruikt in SQL Server 2012 of SQL Server 2014

Van toepassing op
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

Symptomen

Wanneer u het type ruimtelijke gegevens en bijbehorende methoden gebruikt in Microsoft SQL Server 2012 of Microsoft SQL Sever 2014, worden de kwantumdoelen van de SQLOS-planner (SQL Server Operating System) beschermd door de SQL Server CLR-hostinglaag. Deze beveiliging omvat preventieve, SQLOS-switches kunnen het CPU-verbruik verhogen. De reden voor deze preventieve schakeloptie is om de SQLOS-planner te beveiligen. Een aanroep naar een SQL Server CLR-gebaseerde implementatie kan onbepaalde tijd duren zonder toe te geven aan de SQLOS-planner of het gedrag en de gelijktijdigheidspatronen te wijzigen. Daarom is het ruimtelijke gegevenstype zo ontworpen dat tijdens elke aanroep preëmptief wordt geschakeld.

Opmerking Het ruimtelijke gegevenstype is gebaseerd op CLR van SQL Server en kan verschillende niveaus van .NET-geheugengebruik en thread-schakelgedrag tegenkomen.

Oorzaak

De uitvoeringen van de methoden voor ruimtelijke gegevenstypen duren meestal minder dan een milliseconde en vereisen mogelijk niet de volledige SQL OS-planner en preventieve beveiliging. De overhead van het overschakelen van en naar de preventieve modus kan veel groter zijn dan de uitvoering van de ruimtelijke methode zelf.

Oplossing

Deze oplossing introduceert de traceringsvlag 6531 om aan de SQLOS-hostinglaag aan te geven dat het ruimtelijke gegevenstype preventieve beveiliging moet vermijden. Dit kan het CPU-verbruik verminderen en de algehele prestaties voor ruimtelijke activiteiten verbeteren. Gebruik deze traceringsvlag alleen als de aanroepen van de afzonderlijke ruimtelijke methode (per rij en kolom) minder dan ~4 ms duren. Langere aanroepen zonder preventieve beveiliging kunnen leiden tot gelijktijdigheidsproblemen met de planner en SQLCLGR-strafberichten die in het foutenlogboek worden geregistreerd.

Het probleem werd voor het eerst opgelost in de volgende cumulatieve update van SQL Server.

Cumulatieve update 4 voor SQL Server 2012 SP2 /nl-nl/help/3007556

Cumulatieve update 5 voor SQL Server 2014 /nl-nl/help/3011055

Cumulatieve update 13 voor SQL Server 2012 SP1 /nl-nl/help/3002044

Informatie over cumulatieve updates voor SQL Server

Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingspatches die deel uitmaakten van de vorige cumulatieve update. Bekijk de meest recente cumulatieve updates voor SQL Server:

      

Status

Microsoft heeft bevestigd dat dit een probleem is bij de Microsoft-producten die worden vermeld in het gedeelte 'Van toepassing op'.