DBAtlas · Atlas de operações de banco de dados

8651: Could not perform the operation because the requested memory grant was not available (não foi possível executar a operação porque o memory grant solicitado não estava disponível)

SQL Server

O que significa?

O memory grant exigido pela consulta não estava disponível e a operação não pôde ser executada. Diferentemente do 8645, não se trata de uma espera, mas de uma falha direta em fornecer o grande bloco de memória solicitado; geralmente indica pressão de memória severa.

Por que acontece?

A memória disponível para consultas no servidor não consegue atender ao grant solicitado por um único operador (por exemplo, um sort/hash muito grande). Estimativas de memória excessivamente altas, um max server memory baixo, pressão externa de memória ou um limite baixo do Resource Governor, REQUEST_MAX_MEMORY_GRANT_PERCENT (workload group) ou MAX_MEMORY_PERCENT (resource pool), podem ser a causa.

Como resolver

Otimize as consultas que inflam os memory grants (atualize as estatísticas, indexe adequadamente, divida a consulta). Monitore a memória total e disponível; verifique a configuração max server memory e a pressão de memória de aplicações externas. Se o Resource Governor estiver em uso, revise as configurações REQUEST_MAX_MEMORY_GRANT_PERCENT do workload group e MAX_MEMORY_PERCENT do pool. Mova jobs em lote com uso intenso de memória para horários fora de pico.

Abrir no DBAtlas →

Mais entradas deste banco