Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

In-Memory OLTP (Arbeitsspeicheroptimierung)

SQL Server 2014

In-Memory OLTP wurde in SQL Server 2014 neu eingeführt und kann die Leistung der OLTP-Datenbank erheblich verbessern. In-Memory OLTP ist ein speicheroptimiertes Datenbankmodul, das in das SQL Server-Modul integriert und für OLTP optimiert wurde.

Zur Verwendung von In-Memory OLTP definieren Sie eine Tabelle, auf die viel zugegriffen wird, als speicheroptimiert. Speicheroptimierte Tabellen sind vollständig transaktionsfähig und dauerhaft, und der Zugriff erfolgt genau wie bei datenträgerbasierten Tabellen über Transact-SQL. Eine Abfrage kann sowohl auf speicheroptimierte Tabellen als auch auf datenträgerbasierte Tabellen verweisen. Eine Transaktion kann Daten in speicheroptimierten Tabellen und in datenträgerbasierten Tabellen aktualisieren. Gespeicherte Prozeduren, die nur auf speicheroptimierte Tabellen verweisen, können zur weiteren Leistungsverbesserung systemintern in Computercode kompiliert werden. Das In-Memory OLTP-Modul ist für außerordentlich hohe Sitzungsparallelität für Transaktionen vom OLTP-Typ konzipiert, die von einer hochgradigen Skalierung auf mittlerer Ebene gesteuert werden. Um dies zu erreichen, werden Datenstrukturen ohne Latches, jedoch mit Multiversionsverwaltung und optimistischer Nebenläufigkeitssteuerung verwendet. Das Ergebnis ist eine vorhersehbare niedrige Latenz unter einer Millisekunde sowie ein hoher Durchsatz mit linearer Skalierung für Datenbanktransaktionen. Der tatsächliche Leistungszuwachs hängt von vielen Faktoren ab, jedoch kann mit Leistungsverbesserungen um das 5- bis 20-fache gerechnet werden.

In der folgenden Tabelle sind die Arbeitsauslastungsmuster aufgeführt, die am meisten von In-Memory OLTP profitieren:

Implementierungsszenario

Implementierungsszenario

Vorteile von In-Memory OLTP

Hohe Dateneinfügungsrate durch mehrere gleichzeitige Verbindungen

Hauptsächlich Nur anhängen-Speicherung

Nicht in der Lage, mit der Einfügen-Arbeitslast Schritt zu halten

Konfliktbeseitigung

Reduzierung der Protokollierung

Leseleistung und Skalierung mit periodischen Batcheinfügungen und -updates

Hochleistungs-Lesevorgänge, besonders wenn jede Serveranforderung mehrere Lesevorgänge ausführen muss

Skalierungsanforderungen können nicht erfüllt werden

Konfliktbeseitigung beim Eintreffen neuer Daten

Niedrigere Latenz bei Datenabruf

Minimierung der Codeausführungszeit

Intensive Geschäftslogikverarbeitung im Datenbankserver

Einfügen, Aktualisieren und Löschen der Arbeitslast

Intensive Berechnungsvorgänge innerhalb von gespeicherten Prozeduren

Lese-/Schreibkonflikte

Konfliktbeseitigung

Minimierung der Codeausführungszeit für reduzierte Latenz und verbesserten Durchsatz

Niedrige Latenz

Erfordert Geschäftstransaktionen mit niedriger Latenz, die typische Datenbanklösungen nicht erzielen können

Konfliktbeseitigung

Minimierung der Codeausführungszeit

Codeausführungszeit mit niedriger Latenz

Effizienter Datenabruf

Sitzungsstatusverwaltung

Häufige Einfügungen, Aktualisierungen und Punktsuchen

Hohe Skalierungslast durch zahlreiche statuslose Webserver

Konfliktbeseitigung

Effizienter Datenabruf

Optionale E/A-Reduzierung oder Eliminierung durch Verwendung von nicht dauerhaften Tabellen

Weitere Informationen zu Szenarien, in denen In-Memory OLTP für deutlichen Leistungszuwachs sorgt, finden Sie unter In-Memory OLTP – Allgemeine Arbeitsauslastungsmuster und Überlegungen zur Migration.

Durch In-Memory OLTP wird die Leistung vor allem bei OLTP-Transaktionen mit kurzer Ausführungsdauer verbessert.

Zu den Programmierschemata, die durch In-Memory OLTP optimiert werden, zählen Parallelitätsszenarien, Punktsuchen, Arbeitsauslastungen mit vielen Einfügungen und Updates sowie Geschäftslogik in gespeicherten Prozeduren.

Durch die Integration in SQL Server können Sie speicheroptimierte Tabellen und datenträgerbasierte Tabellen in derselben Datenbank verwenden und Abfragen über beide Tabellentypen ausführen.

In SQL Server 2014 gibt es Einschränkungen bei der Transact-SQL-Oberfläche, die für In-Memory OLTP unterstützt wird.

In-Memory OLTP erzielt signifikante Leistungs- und Skalierbarkeitsgewinne, indem Folgendes verwendet wird:

  • Algorithmen, die für den Zugriff auf arbeitsspeicherresidente Daten optimiert sind.

  • Optimistische Nebenläufigkeitssteuerung, die logische Sperren entfernt.

  • Sperren von freien Objekten, die alle physischen Sperren und Latches eliminieren. Threads, die Transaktionsaufgaben ausführen, verwenden keine Sperren oder Latches für die Parallelitätssteuerung.

  • Systemintern kompilierte gespeicherte Prozeduren, die beim Zugriff auf speicheroptimierte Tabellen deutlich bessere Leistung als interpretierte gespeicherte Prozeduren zeigen.

Wichtiger Hinweis Wichtig

Um In-Memory OLTP verwenden zu können, sind einige Syntaxänderungen an den Tabellen und gespeicherten Prozeduren erforderlich. Weitere Informationen finden Sie unter Migrieren zu In-Memory OLTP. Bevor Sie versuchen, eine datenträgerbasierte Tabelle zu einer speicheroptimierten Tabelle zu migrieren, informieren Sie sich unter Bestimmen, ob eine Tabelle oder eine gespeicherte Prozedur zu In-Memory OLTP portiert werden soll darüber, welche Tabellen und gespeicherten Prozeduren von In-Memory OLTP profitieren.

In diesem Abschnitt finden Sie Informationen zu den folgenden Konzepten:

Thema

Beschreibung

Anforderungen für die Verwendung von speicheroptimierten Tabellen

Erläutert Hardware- und Softwareanforderungen und Richtlinien zum Verwenden von speicheroptimierten Tabellen.

Verwenden von In-Memory OLTP in einer Umgebung mit virtuellen Computern

Erläutert die Verwendung von In-Memory OLTP in einer virtualisierten Umgebung.

Codebeispiele für In-Memory OLTP

Enthält Codebeispiele, die das Erstellen und Verwenden einer speicheroptimierten Tabelle veranschaulichen.

Speicheroptimierte Tabellen

Bietet eine Einführung in speicheroptimierte Tabellen.

Speicheroptimierte Tabellenvariablen

Ein Codebeispiel, das veranschaulicht, wie eine speicheroptimierte Tabellenvariable anstelle einer herkömmlichen Tabellenvariable verwendet wird, um die Verwendung von tempdb zu reduzieren.

Indizes für speicheroptimierte Tabellen

Bietet eine Einführung in speicheroptimierte Indizes.

Systemintern kompilierte gespeicherte Prozeduren

Führt systemintern kompilierte gespeicherte Prozeduren ein.

Verwalten des Arbeitsspeichers für In-Memory OLTP

Erläutert die Funktionsweise und Verwaltung der Speicherverwendung im System.

Erstellen und Verwalten von Speicher für speicheroptimierte Objekte

Erläutert Daten- und Änderungsdateien, die Informationen zu Transaktionen in speicheroptimierten Tabellen speichern.

Sichern und Wiederherstellen speicheroptimierter Tabellen

Erläutert die Sicherung und Wiederherstellung von speicheroptimierten Tabellen.

Transact-SQL-Unterstützung für In-Memory OLTP

Erläutert die Transact-SQL-Unterstützung für In-Memory OLTP.

High Availability Support for In-Memory OLTP databases

Erläutert Verfügbarkeitsgruppen und Failoverclustering in In-Memory OLTP.

SQL Server-Unterstützung für In-Memory OLTP

Listet neue und aktualisierte Syntax und Funktionen auf, die speicheroptimierte Tabellen unterstützen.

Migrieren zu In-Memory OLTP

Erläutert, wie datenträgerbasierte Tabellen zu speicheroptimierten Tabellen migriert werden.

Weitere Informationen zu In-Memory OLTP finden Sie unter:

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2015 Microsoft