DBAtlas · Veritabanı operasyon atlası

8651: Could not perform the operation because the requested memory grant was not available

SQL Server

Ne 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.

DBAtlas'ta aç →

Aynı motorda diğer kayıtlar