Simptome
Atunci când utilizați tipul de date spațiale și metodele asociate în Microsoft SQL Server 2012 sau Microsoft SQL Server 2014, destinațiile cuantice ale planificatorului sistemului de operare SQL Server (SQLOS) sunt protejate de stratul de găzduire SQL Server CLR. Această protecție implică preventiv, switch-urile SQLOS pot crește consumul de CPU. Motivul comutării preventive este protejarea planificatorului SQLOS. Un apel la o implementare bazată pe SQL Server CLR poate dura un timp nespecificat, fără să cedeze în fața programatorului SQLOS sau să modifice comportamentul și modelele concurente. Prin urmare, tipul de date spațiale este proiectat să comute preventiv în timpul fiecărei invocări.
Notă Tipul de date spațiale se bazează pe SQL Server CLR, acesta poate întâmpina diferite niveluri de consum de memorie .NET și comportament de comutare între fire.
Cauză
Metodele de tip de date spațiale sunt de obicei sub milisecunde și pot să nu necesite planificatorul complet al sistemului de operare SQL și protecție preventivă. Supraîncărcarea comutării la și de la modul preventiv poate fi mult mai mare decât execuția metodei spațiale în sine.
Rezolvare
Această remediere introduce semnalizarea de urmărire 6531 pentru a indica stratului de găzduire SQLOS că tipul de date spațiale trebuie să evite protecțiile preventive. Acest lucru poate să reducă consumul CPU și să îmbunătățească performanța generală pentru activitățile spațiale. Utilizați această semnalizare de urmărire doar dacă invocările metodei spațiale individuale (pe rând și pe coloană) durează mai puțin de ~4 ms. Invocările mai lungi fără protecție preventivă ar putea duce la probleme de concurență ale planificatorului și la mesaje de pedeapsă SQLCLR înregistrate în jurnalul de erori.
Problema a fost remediată pentru prima dată în următoarea actualizare cumulativă a SQL Server.
Actualizarea cumulativă 4 pentru SQL Server 2012 SP2 /en-us/help/3007556
Actualizarea cumulativă 5 pentru SQL Server 2014 /en-us/help/3011055
Actualizarea cumulativă 13 pentru SQL Server 2012 SP1 /en-us/help/3002044
Despre actualizările cumulative pentru SQL Server
Fiecare actualizare cumulativă nouă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu actualizarea cumulativă anterioară. Consultați cele mai recente actualizări cumulative pentru SQL Server:
- Cea mai recentă actualizare cumulativă pentru SQL Server 2012 SP2
- Cea mai recentă actualizare cumulativă pentru SQL Server 2014
- Cea mai recentă actualizare cumulativă pentru SQL Server 2012 SP1
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft care sunt listate în secțiunea „Se aplică la”.