codeDB
EntrarTestar 7 dias grátis
Erros

Erro 8645 no SQL Server: timeout esperando recurso de memória

26 de agosto de 2026 · 5 min de leitura

Mensagem completa: "A timeout occurred while waiting for memory resources to execute the query in resource pool 'default' (2). Rerun the query." — Msg 8645, Level 17.

O que aconteceu

A query pediu uma concessão de memória (memory grant) — usada para operações como sort, hash join ou hash aggregate — e esperou mais do que o tempo limite do resource governor sem conseguir. Isso é sinal de pressão de memória: ou o servidor está genuinamente sem memória sobrando, ou uma (ou poucas) queries estão monopolizando a memória disponível para operações grandes.

Onde olhar primeiro

SELECT
  session_id, requested_memory_kb, granted_memory_kb, wait_time_ms
FROM sys.dm_exec_query_memory_grants
ORDER BY requested_memory_kb DESC;

Se essa consulta retornar linhas com wait_time_ms alto e requested_memory_kb muito acima do granted_memory_kb, você tem fila de espera por memória acontecendo agora.

Causas mais comuns

  • max server memory configurado alto demais, deixando pouca RAM pro sistema operacional e causando paginação.
  • Estatísticas desatualizadas fazendo o otimizador estimar (e pedir) muito mais memória do que a query realmente precisa.
  • Muitas queries concorrentes com sort/hash grandes na mesma janela de tempo, sem MAXDOP ou resource governor limitando o consumo por sessão.

O codeDB acompanha memória concedida versus disponível e picos de espera por memory grant ao longo do tempo, então dá pra saber se esse erro foi um pico isolado ou tendência de sub-provisionamento antes de precisar comprar mais RAM às pressas.

Artigos relacionados

Monitore seu SQL Server enquanto aprende.

7 dias grátis para aplicar tudo que você aprendeu aqui no seu próprio ambiente.

Começar gratuitamente