Arbeitsspeicherarchitektur
In SQL Server wird Arbeitsspeicher nach Bedarf dynamisch reserviert und freigegeben. Die Angabe des Arbeitsspeicherumfangs durch den Administrator, der SQL Server zugeordnet werden soll, ist in der Regel nicht erforderlich, obwohl die Möglichkeit weiterhin besteht und in einigen Umgebungen erforderlich ist.
In SQL Server werden AWE (Address Windowing Extensions) unterstützt, womit auf 32-Bit-Versionen von Microsoft Windows-Betriebssystemen physischer Arbeitsspeicher über 4 GB verwendet werden kann. Bis zu 64 GB physischer Arbeitsspeicher wird unterstützt. Instanzen von SQL Server, die unter der Microsoft Windows 2000 ausgeführt werden, verwenden die statische AWE-Arbeitsspeicherzuordnung, während Instanzen unter Microsoft Windows Server 2003 die dynamische AWE-Arbeitsspeicherzuordnung verwenden.
Hinweis |
---|
Die AWE-Unterstützung steht nur in der SQL Server Enterprise, Standard und Developer Edition zur Verfügung und besitzt nur für 32-Bit-Betriebssysteme Gültigkeit. Analysis Services kann den zugeordneten AWE-Speicher nicht nutzen. Wenn weniger physischer Speicher als im virtuellen Adressraum (Benutzermodus) verfügbar ist, ist die Aktivierung von AWE nicht möglich. |
Eines der vorrangigen Ziele beim Entwurf jeder Datenbanksoftware ist die Minimierung der Datenträger-E/A, da Lese- und Schreibvorgänge auf dem Datenträger zu den ressourcenintensivsten Vorgängen zählen. SQL Server erstellt einen Pufferpool im Arbeitsspeicher, um Seiten aufzunehmen, die aus der Datenbank gelesen werden. Ein großer Teil des Codes in SQL Server dient dazu, die Anzahl von physischen Lese- und Schreibvorgängen zwischen dem Datenträger und dem Pufferpool zu minimieren. SQL Server versucht, ein Gleichgewicht zwischen den beiden folgenden Zielen herzustellen:
Verhindern, dass der Pufferpool so groß wird, dass im gesamten System nicht genügend Arbeitsspeicher verfügbar ist.
Minimieren physischer E/A-Vorgänge in den Datenbankdateien durch Maximieren der Größe des Pufferpools.
Weitere Informationen finden Sie unter Pufferverwaltung.
Standardmäßig verwalten die Editionen von SQL Server 2005 den Arbeitsspeicher für jede Instanz dynamisch. Es gibt Unterschiede, wie SQL Server mit AWE zugeordneten Arbeitsspeicher unter der Windows 2000 und höheren Versionen der Betriebssysteme verwaltet.
Hinweis |
---|
Bei einem stark ausgelasteten System können umfangreiche Abfragen, die zum Ausführen sehr viel Arbeitsspeicher erfordern, nicht immer die Mindestmenge des angeforderten Arbeitsspeichers erhalten. Während auf die Arbeitsspeicherressourcen gewartet wird, wird deshalb ein Timeoutfehler erzeugt. Zur Behebung dieses Problems sollten Sie den Wert für die Option query wait erhöhen. Für eine parallele Abfrage können Sie den Wert für die Option max degree of parallelism reduzieren. |
Hinweis |
---|
Bei einem stark ausgelasteten System mit knappem Arbeitsspeicher können Abfragen mit Mergeverknüpfung, Sortierung und Bitmap im Abfrageplan zum Löschen der Bitmap führen, wenn für die Abfragen nicht der für die Bitmap benötigte minimale Arbeitsspeicher verfügbar ist. Dies kann die Abfrageleistung beeinträchtigen und – wenn der Sortierprozess nicht genügend Arbeitsspeicher erhält – zu einer erhöhten Verwendung von Arbeitstabellen in der tempdb-Datenbank führen, was ein Anwachsen der tempdb-Datenbank bewirkt. Um dieses Problem zu lösen, müssen Sie physischen Arbeitsspeicher hinzufügen oder die Abfragen so optimieren, dass Sie einen anderen und schnelleren Abfrageplan verwenden. Informationen zur Optimierung finden Sie unter Optimieren der Leistung von 'tempdb' und Vorgehensweise: Optimieren einer Datenbank. |
Bereitstellen der maximalen Menge von Arbeitsspeicher für SQL Server
Mithilfe von AWE und des Privilegs Lock pages in memory können Sie für SQL Server Database Engine (Datenbankmodul) die folgenden Mengen von Arbeitsspeicher bereitstellen.
32-Bit |
64-Bit |
|
---|---|---|
Konventioneller Arbeitsspeicher |
Alle Editionen von SQL Server: Bis zu der für den virtuellen Prozessadressraum geltenden Beschränkung:
|
Alle Editionen von SQL Server: Bis zu der für den virtuellen Prozessadressraum geltenden Beschränkung:
Hinweis
Unter Windows Server 2003 beträgt die Beschränkung 512 GB, und unter Windows Server 2003 Service Pack 1 beträgt die Beschränkung 1 Terabyte. Wenn unter Windows zusätzlicher Arbeitsspeicher unterstützt wird, können in SQL Server die aufgeführten Grenzwerte erreicht werden.
|
AWE-Mechanismus (Ermöglicht SQL Server, auf 32-Bit-Plattformen über die Beschränkung für den virtuellen Prozessadressraum hinauszugehen.) |
SQL Server Standard, Enterprise und Developer Edition: Pufferpool kann auf bis zu 64 GB Arbeitsspeicher zugreifen. |
Nicht anwendbar3 |
Betriebssystem-Privileg "Lock pages in memory" (Ermöglicht das Sperren des physischen Speichers, sodass das Betriebssystem keine Seiten des gesperrten Arbeitsspeichers auslagern kann.)4 |
SQL Server Standard, Enterprise und Developer Edition: Erforderlich, damit der SQL Server-Prozess den AWE-Mechanismus verwenden kann. Über den AWE-Mechanismus zugeordneter Speicher kann nicht ausgelagert werden. Wird dieses Privileg erteilt, ohne dass AWE aktiviert ist, hat dies keine Auswirkungen auf den Server. |
SQL Server Enterprise Edition und Developer Edition: Empfohlen, um Seitenauslagerungen durch das Betriebssystem zu vermeiden. Kann je nach Arbeitsauslastung einen Leistungsvorteil ergeben. Die Menge des Arbeitsspeichers, auf den zugegriffen werden kann, ist vergleichbar mit dem konventionellen Arbeitsspeicher. |
1**/3gb** ist ein Startparameter des Betriebssystems. Weitere Informationen finden Sie in der MSDN Library.
2 WOW64 (Windows on Windows 64) ist ein Modus, in dem SQL Server (32-Bit) auf einem 64-Bit-Betriebssystem ausgeführt wird. Weitere Informationen finden Sie in der MSDN Library.
3 Beachten Sie, dass die sp_configure-Option awe enabled in SQL Server (64-Bit) vorhanden ist, jedoch ignoriert wird. Die Option wird in zukünftigen Versionen oder Service Packs von SQL Server (64-Bit) entfernt.
4 Wenn das Privileg "Lock pages in memory" erteilt wird (entweder auf 32-Bit zur Unterstützung von AWE oder auf 64-Bit als eigenständige Option), wird empfohlen, auch die Option max server memory festzulegen. Weitere Informationen finden Sie unter Serverarbeitsspeicher-Optionen.