8651: Could not perform the operation because the requested memory grant was not available
SQL ServerWas bedeutet das?
Der von der Abfrage benötigte Memory Grant war nicht verfügbar, und die Operation konnte nicht ausgeführt werden. Anders als bei 8645 handelt es sich nicht um ein Warten, sondern um das schlichte Scheitern, den angeforderten großen Speicherblock bereitzustellen; das deutet meist auf starken Speicherdruck hin.
Ursache
Der verfügbare Abfragespeicher des Servers kann den von einem einzelnen Operator angeforderten Grant nicht erfüllen (z. B. ein sehr großer Sort/Hash). Ursache können übermäßig hohe Speicherschätzungen, ein niedriges max server memory, externer Speicherdruck oder ein niedriges Resource-Governor-Limit sein, REQUEST_MAX_MEMORY_GRANT_PERCENT (Workload Group) oder MAX_MEMORY_PERCENT (Resource Pool).
Lösung
Optimiere Abfragen, die Memory Grants aufblähen (Statistiken aktualisieren, passende Indizierung, Abfrage aufteilen). Überwache gesamten und verfügbaren Speicher; prüfe die Einstellung max server memory und den Speicherdruck durch externe Anwendungen. Ist Resource Governor im Einsatz, prüfe die Einstellungen REQUEST_MAX_MEMORY_GRANT_PERCENT der Workload Group und MAX_MEMORY_PERCENT des Pools. Verlege speicherintensive Batch-Jobs in lastarme Zeiten.
Weitere Einträge zu dieser Datenbank
- 7202Could not find server 'name' in sys.servers
- 40501The service is currently busy. Retry the request after 10 seconds
- 8645A time out occurred while waiting for memory resources to execute the query
- 5061ALTER DATABASE failed because a lock could not be placed on database
- 3702Cannot drop database because it is currently in use
- 15138The database principal owns a schema in the database, and cannot be dropped
- 1934INSERT/UPDATE failed because the following SET options have incorrect settings