Sintomas
Quando utiliza uma nova instância do Microsoft SQL Server 2016 (ou 2017) ou uma instância do SQL Server 2016 (ou 2017) atualizada a partir de uma versão anterior do SQL Server, depara-se com problemas de desempenho devido à elevada utilização da CPU. Além disso, se consultar a tabela sys.dm_os_spinlock_stats , notará um valor elevado na coluna giratórias para as linhas SECURITY_CACHE (Cache de Segurança) e CMED_HASH_SET (Cache de Metadados) (em comparação com outras linhas na tabela). Por exemplo, repare nos seguintes valores.
Causa
Este problema ocorre devido à contenção de bloqueio de rotação elevada num sistema altamente simultâneo. Nesses sistemas operacionais, vários threads de CPU estão competindo por recursos e girando por um intervalo estendido enquanto são executados em um loop periodicamente para determinar se o recurso está disponível em vez de produzir imediatamente. Quando vários threads de CPU continuam girando (em um loop while ) para um recurso em vez de render, isso causa alto uso da CPU e problemas de desempenho.
Resolução
Esse problema foi corrigido nas seguintes atualizações cumulativas para SQL Server:
Observação Depois de aplicar SQL Server Atualização Cumulativa 2 (CU2) de 2016, os nomes SECURITY_CACHE e CMED_HASH_SET são alterados para LOCK_RW_SECURITY_CACHE e LOCK_RW_CMED_HASH_SET, respetivamente. Após a aplicação da CU2, os valores são apresentados da seguinte forma.
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:
Atualização cumulativa mais recente para o SQL Server 2017
Atualização cumulativa mais recente para o SQL Server 2016
A Microsoft confirmou que se trata de um problema nos produtos 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.
O white paper Diagnosing and Resolving Spinlock Contention on SQL Server discute problemas e resoluções relacionados à contenção de spinlock em detalhes.