Symptom
Anta att du har mycket statistik och tabeller och att tabellerna innehåller många kolumner i en Microsoft SQL Server 2012- eller SQL Server 2014-databas. När du kör många ad hoc-frågor för att hämta data från dessa tabeller samtidigt kan det uppstå CMEMTHREAD-väntetider under körningen.
Lösning
Information om kumulativ uppdatering
Problemet åtgärdades först i följande kumulativa uppdatering av SQL Server.
- Kumulativ uppdatering 2 för SQL Server 2014 SP1
- Kumulativ uppdatering 9 för SQL Server 2014
- Kumulativ uppdatering 7 för SQL Server 2012 SP2
Rekommendation: Installera den senaste kumulativa uppdateringen för SQL Server
Varje ny kumulativ uppdatering för SQL Server innehåller alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingick i den tidigare kumulativa uppdateringen. Vi rekommenderar att du laddar ned och installerar de senaste kumulativa uppdateringarna för SQL Server:
- Senaste kumulativa uppdateringen för SQL Server 2014 SP1
- Senaste kumulativa uppdateringen för SQL Server 2014
- Senaste kumulativa uppdateringen för SQL Server 2012 SP2
Mer information
När du kompilerar eller kompilerar om en fråga i SQL Server 2012 måste motorn hämta indata från statistiskt histogram. Vi måste utföra en systemtabellskanning och sedan ladda det specifika histogrammet för de tabeller som är inblandade i minnet eller cachen. De här systemtabellposterna (för statistiken) lagras i systemtabellens cache (CACHESTORE_SYSTEMROWSET). Minnesobjektet som används för att skapa dessa poster i cachen är inte partitionerat och är globalt.
Om du har samtidiga minnesallokeringar utförda under den här åtgärden kommer du därför att stöta på CMEMTHREAD-väntetider för det här minnesobjektet. Detta inträffar vanligtvis när du skickar många frågor som kräver kompilering eller omkompilering.
Den här snabbkorrigeringen ändrar det globala minnesobjekt som ska partitioneras så att samtidiga minnesallokeringar som använder systemtabellcachen inte stöter på konkurrens och CMEMTHREAD väntar.
Mer information om liknande problem finns i KB 3026082: ÅTGÄRD: SOS_CACHESTORE spinlock-konkurrens i systemtabellraduppsättningens cache orsakar hög CPU-användning i SQL Server 2012 eller 2014.
Status
Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".