Optimieren der Serverleistung mithilfe von Speicherkonfigurationsoptionen
Dank dem Speicher-Manager von Microsoft SQL Server 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, wenn Sie wissen, dass mehrere Anwendungen gleichzeitig mit SQL Server 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 Speicherbelegung 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. Mit dem Standardwert 0 für max worker threads wird die Anzahl von Arbeitsthreads beim Start automatisch von SQL Server konfiguriert. Diese Einstellung ist für die meisten Systeme optimal geeignet. Abhängig von der Konfiguration des Systems kann jedoch durch Festlegen von max worker threads auf einen bestimmten Wert manchmal die Leistung verbessert werden. Weitere Informationen finden Sie unter max worker threads (Option).
Hinweis |
---|
Die Standardeinstellung von max worker threads in SQL Server 2000 war 255. Beim Aktualisieren einer Instanz des SQL Server 2000 Database Engine (Datenbankmodul) auf eine neuere Version wird der Konfigurationswert für die Option max worker threads beibehalten. Wenn ein Update durchgeführt wird, sollte der neue Instanzwert für max worker threads geändert und auf 0 festgelegt werden, damit Database Engine (Datenbankmodul) die optimale Anzahl von Threads berechnen kann. |
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