CORREÇÃO: Contenção de tempdb pesada ocorre no SQL Server 2016 ou 2017

Aplica-se a: Microsoft SQL Server 2016 Service Pack 1SQL Server 2016 DeveloperSQL Server 2016 Enterprise Mais

Sintomas


Suponha que você está criando ou soltando um grande número de tabelas temporárias no Microsoft SQL Server 2016 ou 2017. Carga de trabalho determinada aplicativos invalida o cache de tabelas temporárias. Por exemplo, você está criando tabelas temporárias e criando ALTER TABLE ou CREATE INDEX que invalidará o cache de tabelas temporárias. Essa situação pode ocorrer os seguintes problemas:

  • Contenção do Data Definition Language (DDL) em tempdb em sysobjvalues de catálogo do sistema e o grande número de sessões que estão aguardando no tipo de espera de PAGELATCH_EX, PAGELATCH_SH e PAGELATCH_UP ocorrer.
  • Essa situação também afeta a carga de trabalho quando a contagem de entradas está mais de 4.000. No entanto, isso pode variar, dependendo da carga de trabalho. Consulte o exemplo a seguir:

     

    SELECT [name], [type], [entries_count], [entries_in_use_count]

    FROM sys.dm_os_memory_cache_counters

    WHERE [type] = N'CACHESTORE_TEMPTABLES'

    nome

    tipo

    entries_count

    entries_in_use_count

    Tabelas temporárias e variáveis de tabela

    CACHESTORE_TEMPTABLES

    <contagem>

    <contagem>

Resolução


Esse problema foi corrigido nas seguintes atualizações cumulativas para o SQL Server:

5 de atualização cumulativa para SQL Server 2017

Atualização de cumulativo 8 para SQL Server 2016 SP1

Status


A Microsoft confirma que este é um problema em seus produtos listados na seção "Aplica-se a".

Referências


Saiba mais sobre a terminologia usada pela Microsoft para descrever as atualizações de software.