Eu tenho uma instalação com ~ 10 dias de idade do WinServer2012R2 e do SQL Server Express 2016 para teste. Eu sou o único usuário nesta máquina. Um banco de dados com um .bak do SQL Server 2005 de ~ 250 MB é restaurado sem problemas. Após uma reinicialização da máquina, o processo "SQL Server NT - 64 Bit" usa 0% da CPU.
Após alguns minutos ou horas e algumas consultas simples (sem atualizações / inserções!) Do uso da CPU do SSMS do "SQL Server NT - 64 Bit", de repente salta para ~ 15% e permanece lá, mesmo quando ocioso. A partir desse momento, as consultas que geralmente levam menos de um segundo demoram 2 minutos. Durante uma consulta real, o uso da CPU NÃO aumenta. O servidor se torna praticamente inutilizável nesse estado.
Somente a conexão do SQL Server Profiler leva mais de 30 segundos. Além das minhas próprias consultas, vejo apenas poucas consultas do SQLServerCEIP / SQLTELEMETRY, ~ 3 por minuto.
Reiniciar o SQL-Server não resolve. O uso da CPU volta para ~ 15%. Mesmo depois de horas, o SQL-Server não se recupera. Somente reiniciar a máquina inteira resolve o problema.
Como esta é uma instalação "pronta para uso", existe apenas um pequeno banco de dados, praticamente nenhuma consulta, apenas eu como usuário e provavelmente nenhum bloqueio, os muitos artigos sobre problemas regulares de desempenho do SQL Server falam sobre muitas coisas que não realmente não se aplica aqui. Parece que o SQL-Server quer se concentrar exclusivamente em alguma tarefa interna.
Esta é uma máquina virtual com 2 GB de RAM e dois Xeon a 2 GHz. Eu também tenho o VS2016 e é muito rápido. Nenhum antivírus, nem mesmo o Windows Defender. Já está atrasado aqui. Vou tentar o sp_whoisactive amanhã. Eu realmente me pergunto o que o SQL-Server está fazendo lá ... Na máquina anterior com 1 GB, o mesmo banco de dados foi executado no SQLServer2005 por 10 anos sem problemas ...
Eu não sou um especialista em SQL-Profiler. Onde devo começar a procurar?
auto_update_statistics_async
estava ativada.