SQL Server'da maksimum bellek ayarı


11

SQL Server 2008'i ve web tabanlı bir uygulamayı, yalnızca 2 GB'lık kullanılabilir bellekle, tek bir sunucu üzerinde çalıştırıyorum.

Başka bir yerde belirtildiği gibi, SQL Server düzenli olarak sunucuda çalışan web uygulamasını yavaşlatan fiziksel belleğin% 98'ini alır.

SSMS'deki Sunucu Özelliklerinde, Bellek altında, Maksimum Sunucu Belleği (Mb olarak) şu değere ayarlanır: 2147483647 SQL Server

Sorum şu: Kullanabileceğim bellek miktarı göz önüne alındığında ve aynı sunucunun web uygulamasını çalıştırdığı için, maksimum sunucu belleği kutusuna koymak için önerilen sayı ne olur?

Ayrıca, SQL Server çalışırken bu numarada değişiklik yapmak güvenli midir?

Tavsiyen için teşekkürler.


2
SQL Server'larda bellek fazlalığı hakkında yazdığım son bir makale okumanız için yararlı olabilir.
Jon Seigel

Yanıtlar:


13

Önce son soruyu cevaplayacağım: Evet, sunucu sorunsuz çalışırken değiştirebilirsiniz. Değeri SQL ile değiştirmek isterseniz, bunu aşağıdaki sorgu ile yapabilirsiniz

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'max server memory', 4096;
GO
RECONFIGURE;
GO

SQL sunucusunda bellek ayarlama hakkında daha fazla bilgi için bu sayfaya bakın .


İlk sorunuz, ne yazık ki cevap: Size söyleyemem, orada değilim.

Bellek ayırırken dikkate almanız gereken 1.000.000 şey vardır. Sorguların sonuç kümeleri ne kadar büyük, ne sıklıkta çalıştırılıyorsa, 20 ms süren bir sorgu şimdi 200 ms sürmek için uygun olur mu?

Sql varsayılanları, sunucuda çalışan tek şey olduğunu varsayar, bu nedenle belleği MAX_VALUE olarak ayarlar ve kullanılabilir tüm bellek kullanımda (ve olmasını istediğiniz şeye oldukça yakın olan özel donanımda) büyümeyi durdurur (bkz. Aarons olası bir uyarı için yorum yapar)). Normalde, veritabanıyla etkileşime giren herhangi bir web sunucusu veya başka bir yazılım, ağ üzerinden iletişim kuran farklı donanımlarda olur.

Gerçekten sadece aklı başında olduğunu düşündüğünüz bir değere ayarlamanız gerekiyor ve web sunucunuz hala bellek boğuluyorsa onu düşürün. Web sunucusuna gereken belleği verdikten sonra SQL size yeterli performans vermiyorsa, daha fazla koç satın almanız veya SQL'i özel donanıma taşımanız gerekir.


2
SQL sunucusu bellek hakkında SSMS güzel Raporu vardır: blogs.msdn.com/b/buckwoody/archive/2007/10/17/... Sen izleyebilirsiniz hangi bölümünün yediği en bellek
DiGi

1

Sql sunucusunun kutudaki tüm belleği almasına asla izin vermemelisiniz .. Bu kutuda neyin çalıştığına ve kutunun ne kadar belleğe bağlı olduğuna bağlıdır, ancak her zaman O için belleğin% 10'unu bıraktığımdan emin olurum \ s.


0

İşe aldığım şirkette her zaman SQL Server için minimum ve maksimum ayarları kullanıyorum. Sunucu yalnızca SQL Server için kullanılıyorsa maksimum, her zaman MAX bellekte ayarlanır - OS için 1GB. Bizim durumumuzda minimum 2GB.

Ancak bu, kurulumlarımız için kanıtlanmıştır. Her kurulum ve kullanım aynı değildir ve hala belleğin her zaman istediğiniz şeyi yapmadığını hissediyorum;)

Sizin durumunuzda bilinen bir şey olabilir, ama aynı zamanda belleği değiştirmeye de bakın. Sunucuda yalnızca 2GB'ınız varsa ve işletim sistemi ve SQL Server bir "yüksek yükte" çalışıyorsa, bellek tüketimi çok fazla artar ve işletim sisteminin biraz değişme eğilimi gösterir. Disk belleği dosyalarınızın işletim sistemi sürücüsünde olmadığından emin olun, aksi takdirde tamamen sıkışmış bir sistemle karşılaşabilirsiniz (daha önce oradaydı ve beğenmediniz).


-1

Ben sadece canlı sunucuda "max sunucu belleği" sorunsuz değişti. Tüm veritabanlarında varsayılan olarak 2147483647 olarak ayarlanmış gibi görünüyor (ancak aslında değişiklikten önce SQL'den değerini nasıl okuyacağımı bilmiyorum) ...


-2

Vakaların% 99'unda varsayılanlara sadık kalın. Bu, belleğin dinamik yönetimine izin verecektir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.