KB4497928 - CORREÇÃO: Pontos de verificação indiretos na base de dados tempdb causam o erro "Programador Não Produtivo" no SQL Server 2016 e 2017

Aplica-se A
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)

Sintomas

Por predefinição, os pontos de verificação indiretos estão ativados para a base de dados tempdb no Microsoft SQL Server 2016 e 2017. Em condições de carga de trabalho pesada, um erro "Agendador não produtivo" pode ocorrer e o sys.dm_os_spinlock_stats DMV mostra contenção de spinlock elevada para o tipo de spinlock DP_LIST.

Estado

A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados na secção "Aplica-se a".

Resolução

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

Acerca das atualizações cumulativas para SQL Server:

Cada nova atualização cumulativa para SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas com a atualização cumulativa anterior. Consulte as atualizações cumulativas mais recentes para SQL Server:

Solução

Para contornar este problema, desative os pontos de verificação indiretos na base de dados tempdb utilizando uma das instruções DDL (Data Definition Language) seguintes.

Isto deve ser feito da seguinte forma:

  • Na base de dados modeldb (isto também altera o valor predefinido para novas bases de dados), execute a seguinte instrução:

    ALTER DATABASE [model] SET TARGET_RECOVERY_TIME = 0 MINUTES

  • Ou, diretamente na base de dados tempdb, sempre que a instância for iniciada, utilizando o SQL Server Agent ao utilizar a seguinte instrução:

    ALTER DATABASE [tempdb] SET TARGET_RECOVERY_TIME = 0 MINUTES

  • Ou, periodicamente, emita pontos de verificação manuais na base de dados tempdb utilizando a seguinte instrução:

    use tempdb
    go checkpoint
    go

    Além disso, o TF 3468 pode ser usado para desativar o ponto de verificação indireto em tempdb.

Referências

Saiba mais sobre a terminologia que a Microsoft utiliza para descrever as atualizações de software. Consulte os seguintes artigos para obter mais informações: