Pufferpoolerweiterung

Gilt für:SQL Server unter Windows

Die Pufferpoolerweiterung integriert SSD-Speicher in den Datenbank-Engine Pufferpool, um die Datenbankleistung zu verbessern, ohne dass hohe Kosten für zusätzlichen Arbeitsspeicher entstehen.

Die Pufferpoolerweiterung ist in jeder SQL Server-Edition nicht verfügbar. Weitere Informationen finden Sie unter Editionen und unterstützte Features von SQL Server 2025.

Vorteile der Pufferpoolerweiterung

Weil Datenträger-E/A-Vorgänge vergleichsweise lange dauern können, stellen sie bei vielen Workloads einen Leistungsengpass dar.

Der typische Ansatz zum Reduzieren der Datenträger-E/A besteht darin, mehr Arbeitsspeicher für die Verwendung als Datencache hinzuzufügen. Während hilfreich, ist der Nachteil dieses Ansatzes die hohen Speicherkosten.

Das Feature für die Pufferpoolerweiterung erweitert den Pufferpoolcache mit nicht volatilem Speicher wie lokalen SSD-Laufwerken. Mit dieser Erweiterung kann der Pufferpool einen größeren Datenbankarbeitssatz aufnehmen, wobei ein erheblicher Teil der langsameren Remote-E/A durch die schnellere lokale SSD-E/A ersetzt wird. Aufgrund der geringeren Latenz und einer besseren E/A-Leistung von SSDs kann die Pufferpoolerweiterung die Leistung verbessern, insbesondere bei langsameren Remote-E/A-Systemen.

Die folgende Liste beschreibt die Vorteile der Pufferpoolerweiterungsfunktion.

  • Erhöhter E/A-Durchsatz
  • Reduzierte E/A-Latenzzeit
  • Verbesserter Transaktionsdurchsatz
  • Verbesserte Leseleistung mit einem größeren hybriden Pufferpool
  • Eine Cachingarchitektur, die aktuelle und zukünftige kostengünstige Speicherlaufwerke nutzen kann

Konzepte für Pufferpoolerweiterungen

Die folgenden Begriffe sind auf die Pufferpoolerweiterungsfunktion anwendbar.

Begriff BESCHREIBUNG
Puffer Im Datenbank-Engine ist ein Puffer eine 8-KB-Seite im Arbeitsspeicher, die gleiche Größe wie eine Daten- oder Indexseite. Der Puffercache ist ebenfalls in Seiten von je 8 KB unterteilt. Eine Seite verbleibt im Puffercache, bis der Puffer-Manager den Pufferbereich benötigt, um weitere Daten zu lesen. Daten werden nur dann auf den Datenträger zurückgeschrieben, wenn sie geändert werden. Diese geänderten Seiten im Arbeitsspeicher werden als dreckige Seiten bezeichnet. Eine Seite ist sauber, wenn sie dem Datenbankimage auf dem Datenträger entspricht. Daten im Puffercache können mehrfach geändert werden, bevor sie zurück auf den Datenträger geschrieben werden.
Pufferpool Auch als Puffer-Cache bezeichnet. Alle Datenbanken verwenden den Pufferpool als globale Ressource für ihre zwischengespeicherten Datenseiten. Der Startupvorgang oder sp_configure konfiguriert die Instanz der Datenbank-Engine dynamisch neu, um die maximale und minimale Größe des Pufferpools zu bestimmen. Diese Größe bestimmt die maximale Anzahl von Seiten, die eine Instanz im Pufferpool zwischenspeichern kann.

Externer Arbeitsspeicherdruck kann die Größe des Pufferpools verringern und den Speicher einschränken, den die Pufferpoolerweiterung zwischenspeichern kann.
Checkpoint Ein Prüfpunkt erstellt einen bekannten fehlerfreien Punkt, von dem aus das Datenbank-Engine Änderungen übernehmen kann, die im Transaktionsprotokoll während der Wiederherstellung nach einem unerwarteten Herunterfahren oder einem Absturz enthalten sind. Ein Prüfpunkt schreibt die schmutzigen Seiten und Transaktionsprotokollinformationen vom Arbeitsspeicher auf den Datenträger. Weitere Informationen finden Sie unter Datenbankprüfpunkte (SQL Server).

Architektur der Pufferpoolerweiterung

Mithilfe der Pufferpoolerweiterung können Sie SSD-Speicher als Erweiterung für das Speichersubsystem anstelle eines Teils des Datenträgersubsystems verwenden. Mit der Pufferpoolerweiterungsdatei kann der Pufferpool-Manager sowohl DRAM- als auch NAND-Flashspeicher verwenden, um einen viel größeren Pufferpool von Seiten auf SSDs beizubehalten.

Diese Architektur schafft eine mehrstufige Cache-Hierarchie, wobei Ebene 1 (L1) der DRAM und Ebene 2 (L2) die Datei für die Pufferpoolerweiterung auf der SSD ist. Nur saubere Seiten werden in den L2-Cache geschrieben, was dazu beiträgt, die Datensicherheit zu gewährleisten. Der Puffer-Manager ist für die Verschiebung der nicht modifizierten Seiten zwischen dem L1- und L2-Cache zuständig.

Die folgende Abbildung enthält eine allgemeine Architekturübersicht über den Pufferpool relativ zu anderen Datenbank-Engine Komponenten.

Diagramm der SSD-Pufferpoolerweiterungsarchitektur.

Wenn Sie die Pufferpoolerweiterung aktivieren, geben Sie die Größe und den Dateipfad der Zwischenspeicherungsdatei des Pufferpools auf der SSD an. Diese Datei ist ein zusammenhängendes Speichermaß auf der SSD und wird während des Starts der Datenbank-Engine Instanz statisch konfiguriert. Sie können die Dateikonfigurationsparameter nur ändern, wenn das Feature für die Pufferpoolerweiterung deaktiviert ist. Wenn Sie die Pufferpoolerweiterung deaktivieren, entfernt das System alle zugehörigen Konfigurationseinstellungen aus der Registrierung. Das System löscht die Pufferpoolerweiterungsdatei beim Herunterfahren der Datenbank-Engine.

Konfiguration der Pufferpoolerweiterung

Verwenden Sie ALTER SERVER CONFIGURATION, um die Pufferpoolerweiterung zu konfigurieren.

Das System betrachtet den physischen Speicher, der für die Datenbank-Engine Instanz beim Start verfügbar ist, um die minimale und maximale Größe der Pufferpoolerweiterung zu erzwingen.

Maximale Größe

Die maximale Größe der Pufferpoolerweiterung hängt von der SQL Server Edition ab und unterscheidet sich für physische und virtuelle Computer.

Wenn Sie eine Größe konfigurieren, die das Maximum überschreitet, gibt die Datenbank-Engine Fehler 864 zurück und aktiviert die Pufferpoolerweiterung nicht.

  • SQL Server Enterprise-, Enterprise Developer- und Developer-Editionen unterstützen bis zu 32 Mal den physischen Arbeitsspeicher.

  • SQL Server Standard- und Standard Developer-Editionen auf physischen Computern unterstützen bis zu 4 Mal den physischen Arbeitsspeicher.

    • Bis zu 512 GB in SQL Server 2022 (16.x) und früheren Versionen.

    • Bis zu 1 TB in SQL Server 2025 (17,x) und höheren Versionen.

  • SQL Server Standard- und Standard Developer-Editionen auf virtuellen Computern unterstützen bis zu 16 Mal den physischen Arbeitsspeicher.

Weitere Informationen finden Sie unter Editionen und unterstützte Features von SQL Server 2025.

Mindestgröße

Die Größe der Pufferpoolerweiterung muss größer als die kleinsten Werte des physischen Speichers und des maximalen Serverspeichers (MB) sein. Wenn die konfigurierte Größe kleiner als dieses Minimum ist, löst die Datenbank-Engine Fehler 868 aus. Wenn die konfigurierte Größe beim Starten der Instanz kleiner als dieses Minimum ist, wird Fehler 861 protokolliert, und die Pufferpoolerweiterung ist nicht aktiviert.

Verhalten von Konfigurationsänderungen

Sie können auf einen Wert erhöhen max server memory (MB) , der höher als die Größe der Pufferpoolerweiterung ist, während die Erweiterung aktiviert ist. Die Datenbank-Engine protokolliert eine Informationsmeldung (Fehler 5866) und wendet die Änderung an. Da der neue Wert jedoch gegen die Mindestgrößenanforderung verstößt, wird die Pufferpoolerweiterung beim nächsten Neustart der Instanz deaktiviert.

Wenn Sie die Pufferpool-Erweiterung mit einer Größe aktivieren, die unterhalb von max server memory (MB) liegt, schlägt der Vorgang mit Fehler 868 fehl.

Bewährte Methoden für die Pufferpoolerweiterung

Berücksichtigen Sie die folgenden bewährten Methoden:

  • Nachdem Sie die Pufferpoolerweiterung zum ersten Mal aktiviert haben, starten Sie die Datenbank-Engine Instanz neu, um die maximalen Leistungsvorteile zu erzielen.
  • Legen Sie die Pufferpoolerweiterung so fest, dass das Verhältnis zwischen der Größe des physischen Speichers und der Größe der Pufferpoolerweiterung 1:16 oder weniger beträgt. Ein niedrigeres Verhältnis im Bereich von 1:4 bis 1:8 kann optimal sein. Informationen zum Festlegen der Option max server memory (MB) finden Sie unter Serverspeicherkonfigurationsoptionen.
  • Testen Sie die Pufferpoolerweiterung gründlich, bevor Sie sie in einer Produktionsumgebung implementieren. Vermeiden Sie, sobald in der Produktion, Konfigurationsänderungen an der Datei vorzunehmen und die Funktion zu deaktivieren. Diese Aktivitäten wirken sich möglicherweise negativ auf die Serverleistung aus, da der Pufferpool beim Deaktivieren des Features erheblich verkleinert wird. Wenn sie deaktiviert ist, wird der zum Unterstützen des Features verwendete Arbeitsspeicher erst wieder beansprucht, wenn die Instanz von SQL Server neu gestartet wird. Wenn das Feature jedoch erneut aktiviert ist, wird der Speicher wiederverwendet, ohne die Instanz neu zu starten.

Überwachen der Pufferpoolerweiterung

Sie können die folgenden dynamischen Verwaltungssichten verwenden, um die Konfiguration der Pufferpoolerweiterung anzuzeigen und Informationen über die Datenseiten in der Erweiterung zurückzugeben.

Leistungsindikatoren sind im SQL ServerObjekt verfügbar, Buffer Manager um die Datenseiten in der Erweiterungsdatei des Pufferpools nachzuverfolgen. Weitere Informationen finden Sie unter SQL Server, Buffer Manager-Objekt.

Die folgenden erweiterten Ereignisse sind verfügbar, um die Erweiterung des Pufferpools im Detail zu überwachen.

Event BESCHREIBUNG
buffer_pool_extension_pages_written Wird ausgelöst, wenn eine Seite oder eine Gruppe von Seiten aus dem Pufferpool entfernt und in die Pufferpoolerweiterungsdatei geschrieben werden.
buffer_pool_extension_pages_read Wird ausgelöst, wenn eine Seite aus der Pufferpoolerweiterungsdatei in den Pufferpool gelesen wird.
buffer_pool_extension_pages_evicted Wird ausgelöst, wenn eine Seite aus der Pufferpoolerweiterungsdatei entfernt wird.
buffer_pool_eviction_thresholds_recalculated Wird ausgelöst, wenn die Verdrängungsschwellenwerte neu berechnet werden.