8651: Could not perform the operation because the requested memory grant was not available
SQL ServerNe demek?
Sorgunun ihtiyaç duyduğu memory grant mevcut değildi ve işlem gerçekleştirilemedi. 8645'ten farkı, burada beklemeden ziyade doğrudan istenen büyük bellek bloğunun sağlanamamasıdır; genellikle ciddi bellek baskısını işaret eder.
Neden olur?
Sunucudaki kullanılabilir sorgu belleği, tek bir operatörün (ör. çok büyük bir sıralama/hash) istediği memory grant'i karşılayamıyor. Aşırı yüksek bellek tahminleri, düşük max server memory, harici bellek baskısı ya da Resource Governor'da düşük REQUEST_MAX_MEMORY_GRANT_PERCENT (iş yükü grubu) veya MAX_MEMORY_PERCENT (resource pool) sınırı neden olabilir.
Nasıl çözülür?
Memory grant'i şişiren sorguları optimize edin (istatistik güncelleme, uygun indeksleme, sorguyu bölme). Toplam ve kullanılabilir belleği izleyin; max server memory ayarını ve harici uygulamaların bellek baskısını kontrol edin. Resource Governor kullanılıyorsa iş yükü grubunun REQUEST_MAX_MEMORY_GRANT_PERCENT ve havuzun MAX_MEMORY_PERCENT ayarlarını gözden geçirin. Bellek yoğun toplu işleri yoğun olmayan saatlere alın.
Aynı motorda diğer kayıtlar
- 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