DBAtlas · Atlas de operaciones de bases de datos

8651: Could not perform the operation because the requested memory grant was not available (no se pudo realizar la operación porque el memory grant solicitado no estaba disponible)

SQL Server

¿Qué significa?

El memory grant que requiere la consulta no estaba disponible y no se pudo realizar la operación. A diferencia de 8645, no se trata de una espera, sino de la imposibilidad directa de proporcionar el gran bloque de memoria solicitado; suele indicar una presión de memoria grave.

¿Por qué ocurre?

La memoria de consultas disponible en el servidor no puede satisfacer el grant solicitado por un único operador (p. ej., un sort/hash muy grande). Pueden ser la causa estimaciones de memoria excesivamente altas, un max server memory bajo, presión de memoria externa o un límite bajo de Resource Governor, REQUEST_MAX_MEMORY_GRANT_PERCENT (workload group) o MAX_MEMORY_PERCENT (resource pool).

Cómo solucionarlo

Optimice las consultas que inflan los memory grants (actualizar estadísticas, indexación adecuada, dividir la consulta). Supervise la memoria total y la disponible; revise el ajuste max server memory y la presión de memoria de aplicaciones externas. Si se usa Resource Governor, revise el REQUEST_MAX_MEMORY_GRANT_PERCENT del workload group y el MAX_MEMORY_PERCENT del pool. Mueva los trabajos por lotes con uso intensivo de memoria a horas valle.

Abrir en DBAtlas →

Más entradas de este motor