KB3074425 – ÅTGÄRDAT: CMEMTHREAD-väntetider inträffar när du kör många ad hoc-frågor i SQL Server 2012 eller SQL Server 2014

Gäller för
SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

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.

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:

      

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