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:
- Laatste cumulatieve update voor SQL Server 2012 SP2
- Meest recente cumulatieve update voor SQL Server 2014
- Laatste cumulatieve update voor SQL Server 2012 SP1
Status
Microsoft heeft bevestigd dat dit een probleem is bij de Microsoft-producten die worden vermeld in het gedeelte 'Van toepassing op'.