KB4058174 - FIX: Heavy tempdb contention occurs in SQL Server 2016 or 2017

Applies To
SQL Server 2016 Service Pack 1 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 on Windows

Symptoms

Assume that you are creating or dropping large number of temporary tables in Microsoft SQL Server 2016 or 2017. Certain application workload invalidates the cache of temporary tables. For example, you are creating temporary tables and then creating ALTER TABLE or CREATE INDEX which will invalidate the cache of temporary tables. In this situation, you may experience the following issues:

  • Data Definition Language (DDL) contention in the tempdb on system catalog sysobjvalues and large number of sessions that are waiting on the PAGELATCH_EX, PAGELATCH_SH and PAGELATCH_UP wait type occur.

  • This situation also affects the workload when the entries count is more than 4,000. However, this may vary, depending on the workload. See the following example:
    SELECT [name], [type], [entries_count], [entries_in_use_count]
    FROM sys.dm_os_memory_cache_counters
    WHERE [type] = N'CACHESTORE_TEMPTABLES'

    name type entries_count entries_in_use_count
    Temporary Tables & Table Variables CACHESTORE_TEMPTABLES <count> <count>

Resolution

This issue is fixed in the following cumulative updates for SQL Server:

Cumulative Update 5 for SQL Server 2017

Cumulative update 8 for SQL Server 2016 SP1

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:

Latest cumulative update for SQL Server 2017

Latest cumulative update for SQL Server 2016

Status

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

References

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