Bu ayar, varsayılan hâlinde bırakıldığında sessizce sorun üreten kalemlerden biri.
Varsayılan davranış
SQL Server, kendisine bir sınır verilmediğinde erişebildiği tüm belleği kullanmaya çalışıyor. Bu, tasarım gereği — veritabanı için bellek ne kadar çoksa o kadar iyi.
Sorun, işletim sisteminin ve sunucudaki diğer işlerin de belleğe ihtiyaç duyması. İkisi yarışa girdiğinde sayfalama başlıyor ve her şey yavaşlıyor.
Belirti nasıl görünüyor?
Kullanıcı tarafında “program bazen çok yavaş, bazen normal” olarak görünüyor. Sunucuda ise bellek kullanımı sürekli tavanda duruyor.
Bu belirti çoğu zaman “sunucu yetersiz, büyütelim” sonucuna götürüyor — oysa sorun yapılandırmada.
Değer nasıl belirlenir?
Toplam bellekten işletim sistemine ve sunucudaki diğer rollere ayrılacak payı çıkarıp kalanı SQL Server’a vermek gerekiyor.
Sunucunun tek işi SQL Server ise pay görece küçük tutulabiliyor. Aynı sunucuda terminal sunucu da çalışıyorsa — ki KOBİ kurulumlarında sık — ayrılacak pay belirgin şekilde artıyor.
Doğru değer sunucudan sunucuya değiştiği için ölçmeden karar vermemek gerekiyor.
Bellek eklendiğinde
Sunucuya RAM eklendiğinde bu ayar kendiliğinden değişmiyor. Yeni belleğin kullanılabilmesi için sınırın elle güncellenmesi gerekiyor.
Yükseltme yapıldığı hâlde beklenen hızlanmanın gelmemesinin yaygın sebebi bu.
Adım adım
- Sunucudaki toplam fiziksel bellek miktarını öğrenin.
- Sunucuda SQL Server dışında başka roller çalışıp çalışmadığını belirleyin.
- İşletim sistemine ve diğer uygulamalara ayrılacak payı çıkarın.
- Kalan değeri SQL Server max server memory ayarına girin.
- Değişikliği uyguladıktan sonra bellek baskısını birkaç gün izleyin.
- Sunucuya bellek eklenirse ayarı yeniden gözden geçirin — otomatik değişmez.
Çözemediyseniz bakalım
Hata mesajının tam metnini ve ne zaman başladığını iletin; hangi katmandan geldiğini söyleyelim. Mikro’yu bizden almamış olmanız fark etmiyor.
Yanıt süremiz: aynı gün içinde.
Sık sorulan sorular
-
SQL Server erişebildiği tüm belleği kullanmaya çalışır. İşletim sistemi bellek sıkıntısına girer, sayfalama başlar ve hem SQL hem sunucunun geri kalanı yavaşlar.
-
Sunucunun tek işi SQL Server ise işletim sistemine belirli bir pay bırakmak yeterli. Aynı sunucuda terminal sunucu veya başka roller varsa payı belirgin şekilde artırmak gerekiyor.
-
Hayır, max server memory anında etkili olur. Ancak bellek kullanımının yeni sınıra oturması biraz zaman alır.