Sie sind hier: Startseite | Wissen
Werbung

Was ist Memory-Optimized Tables?

Die größte Neuerung in Version 2014 ist die unter dem Code-Namen „Hekaton“ erstmal auf dem PASS Summit 2012 in Seattle angekündigte komplett neue Storage-Engine, die Microsoft nun Extreme Transactional Processing (XTP) nennt.

XTP ermöglich als Alternative zu den herkömmlichen Tabellen nun auch sogenannte „speicheroptimierte Tabellen“ (Memory-Optimized Tables). Der primäre Speicherort dieser Tabellen ist das RAM des Datenbankservers. Alle Lese- und Speicheroperationen finden primär im Hauptspeicher statt und sind entsprechend performant. Gleichwohl persistiert der SQL Server 2014 eine Kopie der Daten auf dauerhaften Speichermedien. In speziellen Szenarien (z.B. Sitzungszustand in Websites) besteht auch die Möglichkeit, komplett auf die Datenspeicherung auf Festplatte zu verzichten. Für solche „Schema-Only“-definierten Tabellen finden keine I/O-Operationen mehr statt.

Eine speicheroptimierte Tabelle erzeugt der Nutzer mit den Zusätzen CONTAINS MEMORY_OPTIMIZED_DATA beim Erstellen mit einer Filegroup und WITH (MEMORY_OPTIMIZED=ON) beim Anlegen einer Datenbanktabelle. Um auf diese Tabellen zuzugreifen, ist häufig keine Änderung in der Anwendung erforderlich. Bestehende SQL-Datenzugriffsanweisungen funktionieren wie bisher, solange die Tabellenstruktur sich nicht ändert. Eine Änderung der Tabellenstruktur kann aber notwendig sein, da nicht alle Datentypen und Eigenschaften beim In-Memory-OLTP verfügbar sind. Das gilt zum Beispiel für den XML-Spaltentyp sowie die Geodaten-Typen GEOMETRY und GEOGRAPHY. Eine komplette Übersicht über die von In-Memory-OLTP unterstützen Spaltentypen findet sich unter [1]. Solche speicheroptimierten Tabellen können auch für Variablen in SQL-Skripten und als Tabellenwertparameter für Stored Procedures zum Einsatz kommen. Speicheroptimierte Tabellen bieten zwei neue Index-Typen: Hash-Indexe und Range-Indexe, die auf einem Bw-Tree basieren. Eine spezielle Eigenart dieser beiden Index-Typen ist, das SQL Server diese abseits ihrer Definition niemals auf der Festplatte speichert und somit das I/O-Subsystem wesentlich entlasten. Für weitere Optimierungen im I/O-Bereich sorgt der ausschließlich sequentielle Zugriff auf die neuen Datenstrukturen – im Gegensatz zu dem sonst bekannten Random Access auf Datendateien. Das vereinfacht die Optimierung des darunterliegenden Storagesystems wesentlich.

Querverweise zu anderen Begriffen im Lexikon

XML
SQL
Sitzungszustand
Datenbank
Variable
Hekaton
Storage
Hash

Beratung & Support:

Schulungen zu diesem Thema:

 Anfrage für eine individuelle Schulung zum Thema Memory-Optimized Tables  Gesamter Schulungsthemenkatalog