Optimieren der Serverleistung mithilfe von Speicherkonfigurationsoptionen

Dank dem Speicher-Manager von Microsoft SQL Server 2005 muss der für SQL Server verfügbare Arbeitsspeicher nicht mehr manuell verwaltet werden. Beim Starten von SQL Server wird dynamisch festgelegt, wie viel Arbeitsspeicher je nach aktuellem Speicherbedarf des Betriebssystems und der anderen Anwendungen zugeordnet wird. Mit der wechselnden Auslastung des Computers und von SQL Server ändert sich auch der zugeordnete Arbeitsspeicher. Weitere Informationen finden Sie unter Arbeitsspeicherarchitektur.

Die folgenden Serverkonfigurationsoptionen können verwendet werden, um die Speicherauslastung zu konfigurieren und die Serverleistung zu beeinflussen:

  • min server memory
  • max server memory
  • max worker threads
  • index create memory
  • min memory per query

Mithilfe der Serverkonfigurationsoption min server memory können Sie sicherstellen, dass SQL Server bei Erreichen des Schwellwertes keinen Arbeitsspeicher unterhalb des minimal konfigurierten Serverarbeitsspeichers freigibt. Diese Konfigurationsoption kann je nach Größe und Aktivität von SQL Server auf einen bestimmten Wert festgelegt werden. Bei Verwendung dieser Option sollten Sie einen angemessenen Wert festlegen, um sicherzustellen, dass das Betriebssystem nicht zu viel Arbeitsspeicher von SQL Server anfordert, da sich dies wiederum auf die Leistung von SQL Server auswirken kann.

Mithilfe der Serverkonfigurationsoption maxservermemory kann angegeben werden, wie viel Arbeitsspeicher beim Starten und zur Laufzeit durch SQL Server maximal zugeordnet werden kann. Diese Serverkonfigurationsoption kann auf einen bestimmten Wert festgelegt werden. Das gilt für den Fall, dass neben SQL Server mehrere Anwendungen gleichzeitig ausgeführt werden, und Sie sicherstellen möchten, dass diese Anwendungen über genügend Arbeitsspeicher verfügen. Wenn Anwendungen, z. B. Webserver oder E-Mail-Server, Arbeitsspeicher nur bei Bedarf anfordern, sollten Sie die Serverkonfigurationsoption maxservermemory nicht festlegen, da SQL Server in diesem Fall nach Bedarf Arbeitsspeicher freigibt. Viele Anwendungen verwenden jedoch beim Starten den gesamten verfügbaren Arbeitsspeicher und fordern keinen weiteren Arbeitsspeicher mehr an, selbst wenn er benötigt wird. Wenn eine Anwendung, die sich so verhält, neben SQL Server auf demselben Computer ausgeführt wird, legen Sie die Serverkonfigurationsoption maxservermemory auf einen Wert fest, der sicherstellt, dass der von der Anwendung benötigte Arbeitsspeicher von SQL Server nicht zugeordnet wird.

Legen Sie die Serverkonfigurationsoptionen minservermemory und maxservermemory nicht auf denselben Wert fest, weil der für SQL Server zugeordnete Arbeitsspeicher dadurch auf eine feste Größe festgelegt wird. Mit dynamischer Arbeitsspeicherzuordnung wird über einen längeren Zeitraum die beste Gesamtleistung erzielt. Weitere Informationen finden Sie unter Serverarbeitsspeicher-Optionen.

Mit der Serverkonfigurationsoption maxworkerthreads können Sie angeben, wie viele Threads zur Unterstützung der mit SQL Server verbundenen Benutzer verwendet werden. Die Standardeinstellung 255 kann für bestimmte Konfigurationen je nach Anzahl der gleichzeitigen Benutzer etwas zu hoch sein. Arbeitsthreads bleiben auch dann zugeordnet, wenn sie nicht verwendet werden (da es weniger gleichzeitige Verbindungen als zugeordnete Arbeitsthreads gibt). Dadurch kann es vorkommen, dass Arbeitsspeicherressourcen, die von anderen Anwendungen besser verwendet werden können, nicht genutzt werden (z. B. der Puffercache). Im Allgemeinen sollte dieser Konfigurationswert auf die Anzahl der gleichzeitigen Verbindungen festgelegt werden, den Wert 32727 jedoch nicht überschreiten. Gleichzeitige Verbindungen sind nicht identisch mit angemeldeten Verbindungen. Der Pool mit Arbeitsthreads für eine SQL Server-Instanz muss nur groß genug sein, dass die Anzahl an Benutzerverbindungen bedient werden kann, die in dieser Instanz gleichzeitig aktiv Batches ausführen. Wenn die Anzahl der Arbeitsthreads über den Standardwert hinaus erhöht wird, kann sich dies negativ auf die Serverleistung auswirken. Weitere Informationen finden Sie unter max worker threads (Option).

Mithilfe der Serverkonfigurationsoption indexcreatememory wird gesteuert, wie viel Arbeitsspeicher von Sortieroperationen bei der Indexerstellung verwendet wird. Auf einem Produktionssystem wird ein Index in der Regel sehr selten erstellt; diese Aufgabe wird stattdessen häufig als Auftrag zur Ausführung außerhalb der Geschäftszeiten geplant. Wenn Indizes selten und außerhalb der Hauptgeschäftszeiten erstellt werden, kann die Indexerstellungsleistung daher durch Erhöhen dieses Wertes verbessert werden. Sie sollten die Konfigurationsoption minmemoryperquery jedoch auf einen niedrigen Wert festlegen, sodass der Indexerstellungsauftrag gestartet wird, auch wenn der angeforderte Arbeitsspeicher nicht verfügbar ist. Weitere Informationen finden Sie unter index create memory (Option).

Mit der Serverkonfigurationsoption minmemoryperquery können Sie angeben, wie viel Arbeitsspeicher zum Ausführen einer Abfrage mindestens zugeordnet wird. Wenn in einem System viele Abfragen parallel ausgeführt werden, trägt das Heraufsetzen des Wertes von min memory per query möglicherweise dazu bei, die Leistung von arbeitsspeicherintensiven Abfragen, z. B. umfangreiche Sortier- und Hashoperationen, zu steigern. Legen Sie die Serverkonfigurationsoption minmemoryperquery jedoch nicht zu hoch fest, insbesondere auf sehr ausgelasteten Systemen, da die Abfrage warten muss, bis die minimalen Arbeitsspeicheranforderungen erfüllt werden können, oder bis der in der Serverkonfigurationsoption query wait angegebene Wert erreicht ist. Wenn zum Ausführen der Abfrage mehr Arbeitsspeicher als der angegebene Minimalwert vorhanden ist, darf die Abfrage den zusätzlichen Arbeitsspeicher verwenden, vorausgesetzt, der Arbeitsspeicher kann von der Abfrage effizient verwendet werden. Weitere Informationen finden Sie unter min memory per query (Option) und query wait (Option).

Siehe auch

Aufgaben

Vorgehensweise: Festlegen des Minimums an Arbeitsspeicher für die Abfrage (SQL Server Management Studio)

Konzepte

Überwachen der Arbeitsspeicherverwendung
Auswirkungen der Konfigurationsoptionen min server memory und max server memory
Verwalten von Arbeitsspeicher für große Datenbanken

Hilfe und Informationen

Informationsquellen für SQL Server 2005