Sintomas
Quando você usa uma nova instância do Microsoft SQL Server 2016 (ou 2017) ou uma instância do SQL Server 2016 (ou 2017) atualizada de uma versão anterior do SQL Server, você pode ter problemas de desempenho devido ao alto uso da CPU. Além disso, se você consultar a tabela Sys.dm_os_spinlock_stats , observará um valor alto na coluna rotações para as linhas SECURITY_CACHE (cache de segurança) e CMED_HASH_SET (cache de metadados) (em comparação com outras linhas da tabela). Por exemplo, você observa os valores a seguir.
Causa
Esse problema ocorre devido à disputa de bloqueio de rotação alta em um sistema altamente simultânea. Nesses sistemas operacionais, vários threads de CPU estão competindo por recursos e girando para um intervalo estendido enquanto eles são executados em um loop periodicamente para determinar se o recurso está disponível em vez de ser imediatamente produzido. Quando vários threads de CPU continuam girando (em um loop while ) para um recurso em vez de produzir, isso causa alto uso da CPU e problemas de desempenho.
Resolução
Este problema foi corrigido nas seguintes atualizações cumulativas do SQL Server:
Observação Depois de aplicar a atualização cumulativa 2 (CU2) do SQL Server 2016, os nomes SECURITY_CACHE e CMED_HASH_SET são alterados para LOCK_RW_SECURITY_CACHE e LOCK_RW_CMED_HASH_SET, respectivamente. Após a aplicação do CU2, os valores aparecem da seguinte maneira.
Sobre as atualizações cumulativas do SQL Server
Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança incluídas na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes do SQL Server:
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".
Referências
Saiba mais sobre a terminologia que a Microsoft usa para descrever atualizações de software. O White Paper diagnosticar e solucionar o conteúdo do SpinLock no SQL Server discute problemas e resoluções relacionados à disputa do SpinLock em detalhes.