Limit pamięci dla SQL Server

Jakiś czas temu miałem nieprzyjemną sytuację gdy jedna instancja serwer Microsoft SQL zużywała praktycznie całą dostępną pamięć. Miało to szczególnie negatywny skutek, gdyż dzięki temu inne instancje nie mogły wydajnie pracować.

Jak więc można poradzić sobie w niniejszej sytuacji? Mianowicie poprzez określenie sztywnych ram dostępnej pamięci RAM :). Oczywiście można to łatwo zrobić za pomocą GUI jednakże by nie było zbyt prosto zademonstruje jak do niniejszego problemu podejść z wykorzystaniem Windows PowerSehll.

Pierwszym elementem jaki należy wykonać to uruchomienie konsoli Windows PowerShell i załadowanie odpowiednich bibliotek do zarządzania Microsoft SQL Server.

[System.Reflection.Assembly]::LoadWithPartialName(‘Microsoft.SqlServer.SMO’) | out-null

Następnie należy połączyć się z odpowiednią instancją.

$SmoServer = New-Object (‘Microsoft.SqlServer.Management.Smo.Server’) "Nazwa Serwera\Nazwa Instancji"

Ostatecznie wystarczy przypisać odpowiednie wartości dla parametrów konfiguracji, gdzie pierwszy wiersz odpowiada za ustalenie minimalnej wartości pamięci, natomiast drugi za maksymalny przydział pamięci. Całość zatwierdzić poleceniem alter.

$SmoServer.Configuration.MinServerMemory.ConfigValue = 512
$SmoServer.Configuration.MaxServerMemory.ConfigValue = 2048
$SmoServer.Configuration.Alter()

Źródła:
http://msdn.microsoft.com/en-us/library/ms189631.aspx
http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.server.aspx

Advertisements

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s