DBAtlas · Atlas d'exploitation des bases de données

8651: Could not perform the operation because the requested memory grant was not available (opération impossible : l'octroi de mémoire demandé n'était pas disponible)

SQL Server

Que signifie cette erreur ?

L'octroi de mémoire exigé par la requête n'était pas disponible et l'opération n'a pas pu être effectuée. Contrairement à 8645, il ne s'agit pas d'une attente mais d'une impossibilité pure et simple de fournir le gros bloc de mémoire demandé ; cela indique généralement une forte pression mémoire.

Cause

La mémoire de requête disponible sur le serveur ne peut pas satisfaire l'octroi demandé par un seul opérateur (par ex. un très gros tri/hash). Des estimations de mémoire excessives, un max server memory bas, une pression mémoire externe ou une limite Resource Governor basse, REQUEST_MAX_MEMORY_GRANT_PERCENT (workload group) ou MAX_MEMORY_PERCENT (resource pool), peuvent en être la cause.

Comment la corriger

Optimisez les requêtes qui gonflent les octrois de mémoire (mise à jour des statistiques, indexation appropriée, découpage de la requête). Surveillez la mémoire totale et disponible ; vérifiez le paramètre max server memory et la pression mémoire des applications externes. Si Resource Governor est utilisé, revoyez les paramètres REQUEST_MAX_MEMORY_GRANT_PERCENT du workload group et MAX_MEMORY_PERCENT du pool. Déplacez les traitements par lots gourmands en mémoire en heures creuses.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur