Temos um banco de dados OLTP ativo de 40 GB no SQL Server 2014 SP1. As consultas são lentas com as esperas de IO_Completion, o comprimento da fila de disco subindo para 900 e o SQL Server para de responder. O que tentamos:
Reinicie a instância e, em um minuto, ela começará a se comportar da mesma maneira.
Após a segunda reinicialização, alteramos o tamanho inicial de cada arquivo de dados tempdb (existem 16 arquivos de dados criados) e ele começa a funcionar corretamente.
Nota: Estamos usando variáveis de tabela para conjuntos de resultados intermediários. Esses conjuntos de resultados são muito pequenos.
Aconteceu duas vezes em um mês. Sempre que adiciono um pouco de espaço manualmente aos arquivos de dados, ele começa a funcionar normalmente. O mais interessante é que a mesma configuração (mesmo hardware, mesma configuração de pastas e arquivos, mesma carga de trabalho) que temos no SQL Server 2008 R2 e no SQL Server 2012 está funcionando bem.
Por favor, ajude-nos a encontrar uma solução permanente.
O tamanho inicial de todos os arquivos de dados é o mesmo 1000 MB, o atual é 1500 MB cada. Todos são idênticos. O crescimento automático é de 100 MB para cada um. Antes disso, estávamos enfrentando contenção de páginas PFS e GAM e aumentamos para 16 e o problema foi resolvido. Ambos os sinalizadores de rastreamento 1117 e 1118 estão ativados. 24 núcleos em 2 nós NUMA. Todos os arquivos de dados estão no mesmo volume. Disco simples, sem SAN.
A instância está em uma máquina física. As consultas com variáveis de tabela e as consultas com junções de hash geralmente geram esperas de IO_Completion.
A resposta detalhada do wBob nos levou a pesquisar mais detalhadamente. Como nós perdemos isso antes:
O crescimento automático do arquivo 'templog' no banco de dados 'tempdb' foi cancelado pelo usuário ou atingiu o tempo limite após 7704 milissegundos. Use ALTER DATABASE para definir um valor menor de FILEGROWTH para este arquivo ou para definir explicitamente um novo tamanho de arquivo.
Encontramos isso no log sempre que esse tipo de problema está ocorrendo. Estamos movendo o TempDB para separar o drive rápido.