DBAtlas · Veritabanı operasyon atlası

8645: A time out occurred while waiting for memory resources to execute the query

SQL Server

Ne demek?

Bir sorgu, çalışmak için gereken memory grant'i almak üzere kaynak semaforunda (resource semaphore) beklerken zaman aşımına uğradı. Bellek baskısı nedeniyle sorguya bellek ayrılamadığından işlem iptal edildi.

Neden olur?

Eşzamanlı çalışan bellek yoğun sorgular (büyük sıralama, hash join, hash aggregate) tüm sorgu belleği havuzunu tüketti; yeni sorgular semaforda sıraya girdi ve süresi doldu. Aşırı büyük memory grant tahminleri (güncel olmayan istatistikler, kötü planlar) ya da yetersiz sunucu belleği kök nedendir.

Nasıl çözülür?

sys.dm_exec_query_memory_grants ve resource semaphore DMV'leriyle bellek bekleyen/tutan sorguları belirleyin. İstatistikleri güncelleyin ve aşırı büyük memory grant'e yol açan planları düzeltin (uygun index'ler, daha iyi tahminler). Bellek yoğun sorguların eşzamanlılığını azaltın; gerekirse Resource Governor ile memory grant'i sınırlayın. Sunucu bellek yapılandırmasını (max server memory) gözden geçirin.

DBAtlas'ta aç →

Aynı motorda diğer kayıtlar