Der SQL-Server ist ein richtiger Speichermagnet er greift sich alles an Arbeitsspeicher was er bekommen kann. Um eine verbesserte Leistung des SQL-Servers zu erzielen sollte man die RAM-Nutzung für den SQL-Server einschränken.
Um das Betriebssystem dadurch nicht lahm zu legen kann man den RAM für den SQL-Server begrenzen. Wir haben zwei Einstellungen, die wir ändern können.
- MAX SERVER MEMORY
- MIN SERVER MEMORY
Für diese Einstellungen müssen zuvor die Advanced Options aktiviert werden.
RAM Konfiguration MAX SERVER MEMORY
Für die Begrenzung der RAM-Nutzung führt man folgendes Script aus:
USE MASTER GO EXEC sp_configure 'max server memory', '4864' GO RECONFIGURE WITH OVERRIDE GO
In diesem Fall wird die maximale RAM-Zuteilung auf 4,75 GB (4.864 MB) gesetzt. Der Default-Wert liegt bei 2147483647 MB (2097151,99 GB / 2047,99 TB / 1,99 PB).
Rechenbeispiel
Gehen wir mal davon aus, dass der Server 16 GB RAM hat würde ich die Verteilung wie folgt gestallten:
Betriebssystem 6 GB (6.144 MB)
SQL-Server 10 GB (10.240 MB)
Hier hätte nun der SQL-Server genügend RAM um seine Aufgaben erledigen zu können. Das Betriebssystem hätte mit den verbliebenen 6 GB RAM auch genügend Ressourcen noch zur Verfügung.
Im Großen und Ganzen kann man sagen man lässt dem Betriebssystem die RAM-Voraussetzungen von Microsoft plus 2 – 4 GB zusätzlich an RAM.
RAM Konfiguration MIN SERVER MEMORY
USE MASTER GO EXEC sp_configure 'min server memory', '4864' GO RECONFIGURE WITH OVERRIDE GO
Hier setzten wir die minimalen RAM-Zuteilung auf 4,75 GB (4.864 MB). Der Default-Wert liegt hier bei 0 (Null). Der maximum Wert liegt bei 2147483647 MB (2097151,99 GB / 2047,99 TB / 1,99 PB).
Mit der Einstellung MIN SERVER MEMORY stellen wir sicher, dass der Server mindestens die konfigurierte RAM-Zuteilung bekommt.
In dieser Abbildung sieht man die Konfiguration vom minimalen Serverarbeitsspeicher von 28 GB und vom maximalen Serverarbeitsspeicher von ebenfalls 28 GB. Es ist selten aber manchmal auch Sinnvoll den minimalen und den maximalen Wert gleich zu setzten.
Zudem wurde hier noch der zugesicherte Speicher je Abfrage auf 4 MB gesetzt.