Grundeinstellungen SQL-Server, Teil 1: Arbeitsspeicher

Grundeinstellungen SQL-Server, Teil 1: Arbeitsspeicher

Ist die Performance Ihres SQL-Servers nicht zufriedenstellend? Oft wird der SQL Server schon bei bzw. nach der Installation falsch konfiguriert. Ist das bei Ihnen auch der Fall gewesen? Finden Sie es nun heraus!

In dieser Beitragsreihe geht es um die wichtigsten Instanz- und Datenbankeinstellungen, die Sie beim Einrichten des SQL-Servers beachten sollten. Im ersten Teil widmen wir uns zuerst dem Arbeitsspeicher in den Servereinstellungen.

Fangen wir an: Die Servereinstellungen werden pro SQL-Server – Instanz festgelegt und sind dann für alle #Datenbanken der Instanz gültig. Zu den Servereinstellungen gelangen wir über einen Rechtsklick auf die verbundene Instanz im SSMS und anschließend auf „Eigenschaften“. Wir beginnen mit der Kategorie „Arbeitsspeicher“:

Arbeitsspeicher

Dieser Bereich ist sehr wichtig und man sollte genau wissen, was hier eingestellt wird. Hier schauen wir uns alle vier Einstellparameter an.

sql server servereigenschaften arbeitsspeicher

1. Minimaler Serverarbeitsspeicher

Die Standardeinstellung ist 0. Falls Sie nicht genau wissen sollten, was Sie hier für einen Wert eintragen können, dann lassen Sie diesen auf 0. Der minimale Serverarbeitsspeicher legt die Mindestmenge an RAM fest, die dem SQL Server mindestens zur Verfügung stehen muss. Legen Sie hier einen realistischen Wert fest. Ggf. müssen Sie Ihre Instanz einige Tage überwachen und den Wert ggf. nachjustieren.

Achtung: Setzen Sie diesen Wert nicht zu hoch an. Denn der angegebene Wert wird vom SQL Server nicht wieder freigegeben! Beispiel: Wenn Sie einen Gesamtarbeitsspeicher von 64 GB haben und den Min-Wert auf 30 GB festlegen, dann wird auch dieser Wert reserviert und nicht wieder freigegeben.

Diese Einstellung ist auch sehr wichtig, wenn Sie mehrere Instanzen auf dem gleichen Server betreiben. Hier sollte für jede Instanz ein Wert festgelegt werden.

2. Maximaler Serverarbeitsspeicher

Die Standardeinstellung hier ist  2.147.483.647 MB. Dieser Wert ist für heutige Verhältnisse natürlich viel zu hoch und sollte angepasst werden. Im Beitrag 5 Punkte die helfen, Ihre SQL Server Performance zu verbessern gibt es eine Script-Datei (GetMINMAXMemory.sql), die Ihnen eine grobe Empfehlung für die Min/Max Memory Werte gibt.

Grundsätzlich sollte der Max-Wert genug Ressourcen für das Betriebssystem und noch nebenherlaufende Anwendungen lassen. Viele vergessen gerne, dass die Dienste #SSIS, #SSRS und #SSAS nicht zur Database Engine gehören und somit, genauso wie das Betriebssystem zusätzlichen freien Arbeitsspeicher benötigen. Bei einem System mit 64 GB RAM, sollte der Max-Wert mindestens 4-8 GB unter dem maximalen Arbeitsspeicher liegen. Sind noch weitere Anwendungen am laufen, muss der Wert natürlich weiter angepasst werden.

Hier gilt auch wieder mit einem Startwert anfangen, beobachten und messen. Anschließend kann der Wert wieder nachjustiert werden. Sind mehrere Instanzen auf dem gleichen Server, so muss man dies natürlich auch berücksichtigen!

3. Arbeitsspeicher für Indexerstellung

Die Standardeinstellung ist hier ebenfalls 0. Diese Einstellung steuert den maximalen Umfang den für die Erstellung von Indizes zugeordneten Arbeitsspeichers. Dieser Wert wird dynamisch vom SQL Server verwaltet und sollte normalerweise nicht verändert werden. Sollten Sie jedoch große Schwierigkeiten bei der Indexerstellung bemerken, wäre diese Option ein möglicher Ansatz für Optimierung.

ACHTUNG: Bitte beachtet, dass der eingestellte Wert nicht unter dem Wert für „Minimaler Arbeitsspeicher pro Abfrage“ liegen darf, sonst gibt es eine Fehlermeldung.

4. Minimaler Arbeitsspeicher pro Abfrage

Die Standardeinstellung ist 1024 KB. Diese Eigenschaft gibt die Größe des Arbeitsspeichers an, der für die Ausführung einer Abfrage zugeordnet wird. Der Benutzer kann einen Wert zwischen 512 und 2147483647 KB festlegen. Der #Query-Prozessor von SQL Server versucht, den optimalen Umfang an Speicher zu bestimmen, der von einer Abfrage belegt werden soll. Mit dieser Option kann man eine Größe angeben, die für eine einzelne Abfrage mindestens zur Verfügung gestellt wird. Abfragen erhalten im Allgemeinen mehr Speicher als hier angegeben, wenn Hash- und Sortiervorgänge für umfangreiche Datenmengen ausgeführt werden.

Durch die Erhöhung des Wertes kann es bei einigen Abfragen mit geringem bis mittlerem Umfang zur Leistungssteigerung, jedoch auch zu stärkerem Wettbewerb um Speicherressourcen kommen. Sie sollten diesen Wert (z.B. 2048 oder auch höher) nur erhöhen, wenn der SQL Server über genügend überschüssigen RAM verfügt!

Im nächsten Teil dieser Beitragsreihe geht es um die Prozessoreinstellungen des SQL Servers. Seien Sie gespannt und bleiben Sie auf mit unserem Newsletter auf dem Laufenden:

[newsman-form id='1']

SQL Server

 

Weitere Tutorials?

Natürlich haben wir noch mehr wertvolle Tipps rund um SQL Server für Sie!