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 cargas de trabalho pesadas, pode ocorrer um erro "Agendador não resultante" e o sys.dm_os_spinlock_stats DMV mostra uma contenção elevada do spinlock para o tipo de spinlock DP_LIST.
Resolução
Esta correção está incluída nas seguintes atualizações e service pack:
-
Atualização Cumulativa 5 para SQL Server Service Pack 1 de 2016
-
Atualização Cumulativa 8 para SQL Server 2016
Informações do service pack para SQL Server 2016
Acerca das SQL Server builds
Cada nova compilação para SQL Server contém todas as correções e correções de segurança que estavam na compilação anterior. Recomendamos que instale as atualizações cumulativas mais recentes para SQL Server:
Os service packs são cumulativos. Cada novo service pack contém todas as correções que estão em service packs anteriores, juntamente com quaisquer correções novas. A nossa recomendação é aplicar o service pack mais recente e a atualização cumulativa mais recente para esse service pack. Não tem de instalar um service pack anterior antes de instalar o service pack mais recente. Utilize a Tabela 1 no artigo seguinte para encontrar mais informações sobre o service pack mais recente e a atualização cumulativa mais recente.
Solução
Para resolver este problema, desative os pontos de verificação indiretos na base de dados tempdb com uma das seguintes instruções DDL (Data Definition Language).
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 -
Em alternativa, diretamente na base de dados tempdb sempre que a instância é iniciada com o SQL Server Agent com a seguinte instrução:
ALTER DATABASE [tempdb] SET TARGET_RECOVERY_TIME = 0 MINUTES -
Em alternativa, emita periodicamente pontos de verificação manuais na base de dados tempdb com a seguinte instrução:
use tempdb
go checkpoint
go
Além disso, o TF 3468 pode ser utilizado para desativar o ponto de verificação indireto na tempdb.
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".
Referências
Saiba mais sobre a terminologia que a Microsoft utiliza para descrever as atualizações de software. Veja os seguintes artigos para obter mais informações: