FIX: Slow performance occurs as CMEMTHREAD waits occur due to temporary table cachestore memory object contention in SQL Server 2016 and 2017

Applies to: SQL Server 2016 DeveloperSQL Server 2016 EnterpriseSQL Server 2016 Enterprise Core

Symptoms


In Microsoft SQL Server 2016 and 2017, the temporary table cachestore memory object contention causes the CMEMTHREAD waits, which lead to slow performance.

Cause


A major point of contention in highly concurrent Tempdb workloads which create temp tables in stored procs is the contention on the Temp Table cachestore memory object. This primarily surfaces as CMEMTHREAD waits due to contention on the cachestore memory object when many concurrent workers try to CREATE/DROP the temp tables. Because the cachestore's memory object is not partitioned currently, memory object contention occurs on all the threads.

Status


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section. 

Resolution


This issue is fixed in the following cumulative updates for SQL Server:
Note: The resolution for the fix is partitioning the memory object (by CPU) that will improve the performance.

About cumulative updates for SQL Server:
Each new cumulative update for SQL Server contains all the hotfixes and all the security fixes that were included with the previous cumulative update. Check out the latest cumulative updates for SQL Server:

References


Learn about the terminology that Microsoft uses to describe software updates.