In-Memory-Datenbanksysteme und -TechnologienIn-memory database systems and technologies

Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions)

Diese Seite ist als Referenzseite für In-Memory-Features und -Technologien in SQL Server gedacht.This page is intended to serve as a reference page for in-memory features and technologies within SQL Server. Ein In-Memory-Datenbanksystem ist ein Datenbanksystem, das so konzipiert ist, dass es die in modernen Datenbanksystemen verfügbaren größeren Arbeitsspeicherkapazitäten nutzt.The concept of an in-memory database system refers to a database system that has been designed to take advantage of larger memory capacities available on modern database systems. In-Memory-Datenbanken können relational oder nicht relational sein.An in-memory database may be relational or non-relational in nature.

Häufig wird angenommen, dass die bessere Leistung von In-Memory-Datenbanksystemen hauptsächlich darauf zurückzuführen ist, dass auf Daten im Arbeitsspeicher (um ein Vielfaches) schneller zugegriffen werden kann als auf Daten auf dem schnellsten Datenträgersubsystem.It is assumed often, that the performance advantages of an in-memory database system are mostly owing to it being faster to access data that is resident in memory rather than data that sitting on even the fastest available disk subsystems (by several orders of magnitude). Allerdings passt bei vielen SQL Server-Arbeitsauslastungen der gesamte Arbeitssatz in den verfügbaren Arbeitsspeicher.However, many SQL Server workloads can fit their entire working set in available memory. Viele In-Memory-Datenbanksysteme können Daten persistent auf Datenträgern speichern, und möglicherweise passt nicht immer das gesamte Dataset in den verfügbaren Arbeitsspeicher.Many in-memory database systems can persist data to disk and may not always be able to fit the entire data set in available memory.

Bei Arbeitsauslastungen von relationalen Datenbanken ist ein schneller flüchtiger Cache vor deutlich langsameren, aber langlebigen Medien üblich.A fast volatile cache that fronts a considerably slower but durable media has been predominant for relational database workloads. Hierfür sind bestimmte Ansätze bei der Arbeitsauslastungsverwaltung erforderlich.It necessitates particular approaches to workload management. Die Möglichkeiten, die sich durch schnellere Übertragungsraten von Arbeitsspeichern, größere Kapazität oder sogar persistenten Speicher ergeben, erleichtern die Entwicklung von neuen Features und Technologien, die neue Ansätze für die Arbeitsauslastungsverwaltung von relationalen Datenbanken vorantreiben können.The opportunities presented by faster memory transfer rates, greater capacity, or even persistent memory facilitates the development of new features and technologies that can spur new approaches to relational database workload management.

Hybrider PufferpoolHybrid buffer pool

Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions)

Bei einem hybriden Pufferpool wird der Pufferpool für Datenbankdateien, die auf byteadressierbaren Speichergeräten mit persistentem Speicher liegen, für Windows- und Linuxplattformen mit SQL Server 2019 (15.x)SQL Server 2019 (15.x) erweitert.Hybrid buffer pool expands the buffer pool for database files residing on byte-addressable persistent memory storage devices for both Windows and Linux platforms with SQL Server 2019 (15.x)SQL Server 2019 (15.x).

Speicheroptimierte tempdb-MetadatenMemory-optimized tempdb metadata

Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions)

Mit SQL Server 2019 (15.x)SQL Server 2019 (15.x) wird eine neue Funktion für speicheroptimierte tempdb-Metadaten eingeführt, durch die einige Engpässe aufgrund von Konflikten effektiv behoben werden und sich eine neue Ebene der Skalierbarkeit für tempdb-intensive Workloads ergibt.SQL Server 2019 (15.x)SQL Server 2019 (15.x) introduces a new feature that is memory-optimized tempdb metadata, which effectively removes some contention bottlenecks and unlocks a new level of scalability for tempdb-heavy workloads.

In-Memory-OLTPIn-memory OLTP

Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions)

In-Memory-OLTP ist eine in SQL ServerSQL Server und SQL-DatenbankSQL Database verfügbare Datenbanktechnologie für die Optimierung der Transaktionsverarbeitung, des Erfassens und Ladens von Daten sowie vorübergehender Datenszenarios.In-memory OLTP is a database technology available in SQL ServerSQL Server and SQL-DatenbankSQL Database for optimizing performance of transaction processing, data ingestion, data load, and transient data scenarios.

Unterstützung für persistenten Speicher konfigurieren unter LinuxConfiguring persistent memory support for Linux

Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) : LinuxAnwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) - Linux

SQL Server 2019 (15.x)SQL Server 2019 (15.x) beschreibt, wie Sie persistenten Speicher unter Verwendung des persistenten Speichers des Hilfsprogramms ndctl konfigurieren.describes how to configure persistent memory (PMEM) using the ndctl utility persistent memory.

Persistenter ProtokollpufferPersisted log Buffer

Mit dem Service Pack 1 von SQL Server 2016 (13.x)SQL Server 2016 (13.x) wurde die Leistung bei schreibintensiven Arbeitsauslastungen, die mit WRITELOG-Wartevorgängen verbunden waren, optimiert.Service Pack 1 of SQL Server 2016 (13.x)SQL Server 2016 (13.x) introduced a performance optimization for write intensive workloads that were bound by WRITELOG waits. Der Protokollpuffer wird im persistenten Speicher gespeichert.Persistent memory is used to store the log buffer. Dieser kleine Puffer (20 MB pro Benutzerdatenbank) muss auf einen Datenträger geleert werden, damit die im Transaktionsprotokoll erfassten Transaktionen festgeschrieben werden.This buffer, which is small (20 MB per user database), has to be flushed to disk in order for the transactions written to the transaction log to be hardened. Bei schreibintensiven OLTP-Arbeitsauslastungen kann dieser Leerungsmechanismus zu einem Engpass werden.For write intensive OLTP workloads, this flushing mechanism can become a bottleneck. Mit dem Protokollpuffer im persistenten Speicher wird die Anzahl von für das Festschreiben des Protokolls erforderlichen Vorgängen verringert, wodurch die Gesamtdauer von Transaktionen optimiert und die Leistung der Arbeitsauslastungen verbessert wird.With the log buffer on persistent memory, the number of operations required to harden the log is reduced, improving overall transaction times and increasing workload performance. Dieser Prozess wurde ursprünglich als Tail of Log Caching (Protokollfragmentzwischenspeicherung) eingeführt.This process was introduced as Tail of Log Caching. Dies wurde allerdings als Widerspruch zur Protokollfragmentsicherung sowie zu der traditionellen Auffassung, dass ein Protokollfragment der Teil eines Transaktionsprotokolls ist, der festgeschrieben, aber noch nicht gesichert wurde, wahrgenommen.However, there was a perceived conflict with Tail Log Backups and the traditional understanding that the tail of the log was the portion of the transaction log hardened but not yet backed up. Da die offizielle Bezeichnung für das Feature „Persisted Log Buffer“ (persistenter Protokollpuffer) ist, wird diese Bezeichnung hier verwendet.Since the official feature name is Persisted Log Buffer, this is the name used here.

Weitere Informationen finden Sie unter Hinzufügen eines persistenten Protokollpuffers zu einer Datenbank.See Add persisted log buffer to a database.