Einführung in speicheroptimierte TabellenIntroduction to Memory-Optimized Tables

Gilt für: JaSQL Server JaAzure SQL-Datenbank NeinAzure Synapse Analytics (SQL DW) NeinParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Speicheroptimierte Tabellen werden mit CREATE TABLE (Transact-SQL) erstellt.Memory-optimized tables are created using CREATE TABLE (Transact-SQL).

Speicheroptimierte Tabellen sind standardmäßig vollständig dauerhaft und bieten, wie Transaktionen in (herkömmlichen) datenträgerbasierten Tabellen, vollständige ACID-Eigenschaften (Atomarität, Konsistenz, Isolation, Dauerhaftigkeit).Memory-optimized tables are fully durable by default, and, like transactions on (traditional) disk-based tables, transactions on memory-optimized tables are fully atomic, consistent, isolated, and durable (ACID). Speicheroptimierte Tabellen und nativ kompilierte gespeicherte Prozeduren unterstützen nur einen Teil der Transact-SQLTransact-SQL-Features.Memory-optimized tables and natively compiled stored procedures support only a subset of Transact-SQLTransact-SQL features.

Ab SQL Server 2016 und in der Azure SQL-Datenbank gibt es keine Einschränkungen für Sortierungen oder Codepages , die spezifisch für In-Memory OLTP sind.Starting with SQL Server 2016, and in Azure SQL Database, there are no limitations for collations or code pages that are specific to In-Memory OLTP.

Beim Primärspeicher für speicheroptimierte Tabellen handelt es sich um den Hauptspeicher.The primary storage for memory-optimized tables is the main memory. Zeilen in der Tabelle werden aus dem Arbeitsspeicher gelesen und in diesen geschrieben.Rows in the table are read from and written to memory. Eine zweite Kopie der Tabellendaten wird auf Festplatte gespeichert, aber nur zu Dauerhaftigkeitszwecken.A second copy of the table data is maintained on disk, but only for durability purposes. Weitere Informationen zu dauerhaften Tabellen finden Sie unter Erstellen und Verwalten von Speicher für arbeitsspeicheroptimierte Objekte .See Creating and Managing Storage for Memory-Optimized Objects for more information about durable tables. Daten in speicheroptimierten Tabellen werden nur während der Datenbankwiederherstellung vom Datenträger gelesen (z.B.Data in memory-optimized tables is only read from disk during database recovery (eg. nach einem Serverneustart).after a server restart).

Noch deutlichere Leistungsverbesserungen werden bei In-Memory OLTP durch die Unterstützung von dauerhaften Tabellen mit verzögerter Transaktionsdauerhaftigkeit erzielt.For even greater performance gains, In-Memory OLTP supports durable tables with transaction durability delayed. Verzögerte dauerhafte Transaktionen werden kurz nach dem Commit der Transaktion und nach der Rückgabe der Steuerung an den Client auf dem Datenträger gespeichert.Delayed durable transactions are saved to disk soon after the transaction has committed and control was returned to the client. Im Austausch für die höhere Leistung besteht die Gefahr, dass Transaktionen, die noch nicht auf dem Datenträger gespeichert wurden, bei einem Absturz oder Failover des Servers verloren gehen.In exchange for the increased performance, committed transactions that have not saved to disk are lost in a server crash or fail over.

Neben den standardmäßig dauerhaften speicheroptimierten Tabellen unterstützt SQL ServerSQL Server auch nicht dauerhafte speicheroptimierte Tabellen, die nicht protokolliert und deren Daten nicht auf dem Datenträger beibehalten werden.Besides the default durable memory-optimized tables, SQL ServerSQL Server also supports non-durable memory-optimized tables, which are not logged and their data is not persisted on disk. Das bedeutet, dass Transaktionen in diesen Tabellen keine Datenträger-E/A-Vorgänge erfordern, die Daten aber bei einem Serverabsturz oder einem Failover nicht wiederhergestellt werden können.This means that transactions on these tables do not require any disk IO, but the data will not be recovered if there is a server crash or failover.

In-Memory OLTP ist in SQL ServerSQL Server integriert, um in allen Bereichen wie Entwicklung, Bereitstellung, Verwaltbarkeit und Unterstützbarkeit eine reibungslose Benutzererfahrung zu ermöglichen.In-Memory OLTP is integrated with SQL ServerSQL Server to provide a seamless experience in all areas such as development, deployment, manageability, and supportability. Eine Datenbank kann speicherinterne wie auch datenträgerbasierte Objekte enthalten.A database can contain in-memory as well as disk-based objects.

Für Zeilen in speicheroptimierten Tabellen wird die Versionsverwaltung verwendet.Rows in memory-optimized tables are versioned. Dies bedeutet, dass für jede Zeile in der Tabelle möglicherweise mehrere Versionen vorliegen.This means that each row in the table potentially has multiple versions. Alle Zeilenversionen werden in derselben Tabellendatenstruktur verwaltet.All row versions are maintained in the same table data structure. Die Zeilenversionsverwaltung wird verwendet, um gleichzeitige Lese- und Schreibvorgänge für dieselbe Zeile zuzulassen.Row versioning is used to allow concurrent reads and writes on the same row. Weitere Informationen zu gleichzeitigen Lese- und Schreibvorgängen für die gleiche Zeile finden Sie unter Transactions with Memory-Optimized Tables(Transaktionen mit speicheroptimierten Tabellen).For more information about concurrent reads and writes on the same row, see Transactions with Memory-Optimized Tables.

Die folgende Abbildung veranschaulicht die Multiversionsverwaltung.The following figure illustrates multi-versioning. Die Abbildung zeigt eine Tabelle mit drei Zeilen, und jede Zeile weist unterschiedliche Versionen auf.The figure shows a table with three rows and each row has different versions.

Multiversionsverwaltung.Multi-versioning.

Die Tabelle enthält drei Zeilen: r1, r2 und r3.The table has three rows: r1, r2, and r3. r1 verfügt über drei Versionen, r2 über zwei Versionen und r3 über vier Versionen.r1 has three versions, r2 has two versions, and r3 has four versions. Beachten Sie, dass unterschiedliche Versionen derselben Zeile nicht unbedingt aufeinander folgende Speicheradressen belegen.Note that different versions of the same row do not necessarily occupy consecutive memory locations. Die unterschiedlichen Zielversionen können über die Tabellendatenstruktur verteilt sein.The different row versions can be dispersed throughout the table data structure.

Die speicheroptimierte Tabellendatenstruktur kann als Auflistung von Zeilenversionen gesehen werden.The memory-optimized table data structure can be seen as a collection of row versions. Während Zeilen in datenträgerbasierten Tabellen in Seiten und Blöcken angeordnet sind und einzelne Zeilen mithilfe der Seitenzahl und des Seitenoffsets adressiert werden, werden Zeilenversionen in speicheroptimierten Tabellen mithilfe von 8-Byte-Speicherzeigern adressiert.Rows in disk-based tables are organized in pages and extents, and individual rows addressed using page number and page offset, row versions in memory-optimized tables are addressed using 8-byte memory pointers.

Der Datenzugriff in speicheroptimierten Tabellen erfolgt auf zwei Arten:Data in memory-optimized tables is accessed in two ways:

  • Durch systemintern kompilierte gespeicherte ProzedurenThrough natively compiled stored procedures.

  • Durch interpretiertes Transact-SQLTransact-SQL, außerhalb einer systemintern kompilierten gespeicherten Prozedur.Through interpreted Transact-SQLTransact-SQL, outside of a natively-compiled stored procedure. Diese Transact-SQLTransact-SQL -Anweisungen können sich entweder in interpretierten gespeicherten Prozeduren befinden oder als Ad-hoc- Transact-SQLTransact-SQL -Anweisungen vorliegen.These Transact-SQLTransact-SQL statements may be either inside interpreted stored procedures or they may be ad-hoc Transact-SQLTransact-SQL statements.

Zugriff auf Daten in speicheroptimierten TabellenAccessing Data in Memory-Optimized Tables

Auf speicheroptimierte Tabellen kann am effizientesten mit systemintern kompilierten gespeicherten Prozeduren (Systemintern kompilierte gespeicherte Prozeduren) zugegriffen werden.Memory-optimized tables can be accessed most efficiently from natively compiled stored procedures (Natively Compiled Stored Procedures). Auf speicheroptimierte Tabellen kann außerdem mit (herkömmlichem) interpretiertem Transact-SQLTransact-SQLzugegriffen werden.Memory-optimized tables can also be accessed with (traditional) interpreted Transact-SQLTransact-SQL. "Interpretiertes Transact-SQLTransact-SQL " bezieht sich auf den Zugriff auf speicheroptimierte Tabellen ohne eine systemintern kompilierte gespeicherte Prozedur.Interpreted Transact-SQLTransact-SQL refers to accessing memory-optimized tables without a natively compiled stored procedure. Beispiele für den Zugriff auf interpretiertes Transact-SQLTransact-SQL sind der Zugriff auf eine speicheroptimierte Tabelle über einen DML-Trigger, einen Ad-Hoc- Transact-SQLTransact-SQL -Batch, eine Sicht und eine Tabellenwertfunktion.Some examples of interpreted Transact-SQLTransact-SQL access include accessing a memory-optimized table from a DML trigger, ad hoc Transact-SQLTransact-SQL batch, view, and table-valued function.

In der folgenden Tabelle wird der systemeigene und interpretierte Transact-SQLTransact-SQL -Zugriff für verschiedene Objekte zusammengefasst.The following table summarizes native and interpreted Transact-SQLTransact-SQL access for various objects.

FunktionFeature Zugriff mithilfe einer systemintern kompilierten gespeicherten ProzedurAccess Using a Natively Compiled Stored Procedure Interpretierter Transact-SQLTransact-SQL -ZugriffInterpreted Transact-SQLTransact-SQL Access CLR-ZugriffCLR Access
Speicheroptimierte TabelleMemory-optimized table JaYes JaYes Nein*No*
Speicheroptimierter TabellentypMemory-optimized table type JaYes JaYes NeinNo
Systemintern kompilierte gespeicherte ProzedurNatively compiled stored procedure Das Schachteln von systemintern kompilierten gespeicherten Prozeduren wird jetzt unterstützt.Nesting of natively compiled stored procedures is now supported. Sie können in gespeicherten Prozeduren die EXECUTE-Syntax verwenden, solange die Prozedur, auf die verwiesen wird, ebenfalls systemintern kompiliert wird.You can use the EXECUTE syntax inside the stored procedures, as long as the referenced procedure is also natively compiled. JaYes Nein*No*

*Sie können auf eine speicheroptimierte Tabelle oder eine systemintern kompilierte gespeicherte Prozedur nicht über die Kontextverbindung (die Verbindung von SQL ServerSQL Server , wenn ein CLR-Modul ausgeführt wird) zugreifen.*You cannot access a memory-optimized table or natively compiled stored procedure from the context connection (the connection from SQL ServerSQL Server when executing a CLR module). Sie können jedoch eine andere Verbindung erstellen und öffnen, über die Sie auf speicheroptimierte Tabellen und systemintern kompilierte gespeicherte Prozeduren zugreifen können.You can, however, create and open another connection from which you can access memory-optimized tables and natively compiled stored procedures.

Leistung und SkalierbarkeitPerformance and Scalability

Die folgenden Faktoren beeinflussen die Leistungsvorteile, die mit In-Memory OLTP erreicht werden können:The following factors will affect the performance gains that can be achieved with In-Memory OLTP:

Kommunikation: Eine Anwendung mit vielen Aufrufen kurzer gespeicherter Prozeduren erzielt möglicherweise einen kleineren Leistungszuwachs als eine Anwendung, bei der weniger Aufrufe und zusätzliche Funktionen in jede gespeicherte Prozedur implementiert sind.Communication: An application with many calls to short stored procedures may see a smaller performance gain compared to an application with fewer calls and more functionality implemented in each stored procedure.

Transact-SQLTransact-SQL Ausführung: In-Memory OLTP gewährleistet die beste Leistung bei systemintern kompilierten gespeicherten Prozeduren im Gegensatz zu interpretierten gespeicherten Prozeduren oder Abfrageausführungen.Transact-SQLTransact-SQL Execution: In-Memory OLTP achieves the best performance when using natively compiled stored procedures rather than interpreted stored procedures or query execution. Dies kann einen Vorteil gegenüber dem Zugriff auf speicheroptimierte Tabellen aus solchen gespeicherten Prozeduren bieten.There can be a benefit to accessing memory-optimized tables from such stored procedures.

Bereichsscan im Vergleich zur Punktsuche Speicheroptimierte, nicht gruppierte Indizes unterstützen Bereichsscans und sortierte Scans.Range Scan vs Point Lookup: Memory-optimized nonclustered indexes support range scans and ordered scans. Bei Punktsuchen erzielen Sie mit speicheroptimierten Hashindizes eine bessere Leistung als mit speicheroptimierten, nicht gruppierten Indizes.For point lookups, memory-optimized hash indexes have better performance than memory-optimized nonclustered indexes. Speicheroptimierte, nicht gruppierte Indizes weisen eine bessere Leistung auf als datenträgerbasierte Indizes.Memory-optimized nonclustered indexes have better performance than disk-based indexes.

  • Ab SQL Server 2016 kann der Abfrageplan für eine speicheroptimierte Tabelle die Tabelle parallel scannen.Starting in SQL Server 2016, the query plan for a memory-optimized table can scan the table in parallel. Dies verbessert die Leistung von Analyseabfragen.This improves the performance of analytical queries.
    • Hashindizes können seit SQL Server 2016 auch parallel gescannt werden.Hash indexes also became scannable in parallel in SQL Server 2016.
    • Nicht gruppierte Indizes können seit SQL Server 2016 auch parallel gescannt werden.Nonclustered indexes also became scannable in parallel in SQL Server 2016.
    • Columnstore-Indizes können seit ihrer Einführung in SQL Server 2014 parallel gescannt werden.Columnstore indexes have been scannable in parallel since their inception in SQL Server 2014.

Indexvorgänge: Indexvorgänge werden nicht protokolliert und sind nur im Arbeitsspeicher vorhanden.Index operations: Index operations are not logged, and they exist only in memory.

Parallelität: Anwendungen, deren Leistung durch Parallelität auf Engine-Ebene wie Latchkonflikte oder Blockierungen beeinträchtigt wird, verzeichnen eine erhebliche Leistungssteigerung, wenn die Anwendung auf In-Memory OLTP umgestellt wird.Concurrency: Applications whose performance is affected by engine-level concurrency, such as latch contention or blocking, improves significantly when the application moves to In-Memory OLTP.

In der folgenden Tabelle werden die Leistungs- und Skalierbarkeitsprobleme, die häufig in relationalen Datenbanken auftreten, zusammen mit einer möglichen Leistungssteigerung durch In-Memory OLTP aufgeführt.The following table lists the performance and scalability issues that are commonly found in relational databases and how In-Memory OLTP can improve performance.

ProblemIssue Einfluss durch In-Memory OLTPIn-Memory OLTP Impact
LeistungPerformance

Intensive Ressourcennutzung (CPU, E/A, Netzwerk oder Arbeitsspeicher)High resource (CPU, I/O, network or memory) usage.
CPUCPU
Durch systemintern kompilierte gespeicherte Prozeduren kann die CPU-Nutzung erheblich gesenkt werden, da sie deutlich weniger Anweisungen als interpretierte gespeicherte Prozeduren benötigen, um eine Transact-SQLTransact-SQL -Anweisung auszuführen.Natively compiled stored procedures can lower CPU usage significantly because they require significantly fewer instructions to execute a Transact-SQLTransact-SQL statement compared to interpreted stored procedures.

In-Memory OLTP kann die erforderlichen Hardwareinvestitionen bei horizontal skalierten Arbeitsauslastungen reduzieren, da ein Server so potenziell den Durchsatz von fünf bis 10 Servern erzielen kann.In-Memory OLTP can help reduce the hardware investment in scaled-out workloads because one server can potentially deliver the throughput of five to ten servers.

E/AI/O
Wenn bei der Verarbeitung ein E/A-Engpass aufgrund der Verarbeitung von Daten oder Indexseiten auftritt, lässt sich dieser durch In-Memory OLTP u. U. reduzieren.If you encounter an I/O bottleneck from processing to data or index pages, In-Memory OLTP may reduce the bottleneck. Zudem wird der Prüfpunktalgorithmus von In-Memory OLTP-Objekten kontinuierlich durchgeführt und führt nicht zu einem plötzlichen Anstieg von E/A-Vorgängen.Additionally, the checkpointing of In-Memory OLTP objects is continuous and does not lead to sudden increases in I/O operations. Wenn jedoch das Workingset der leistungskritischen Tabellen zu groß für den Arbeitsspeicher ist, steigert In-Memory OLTP nicht die Leistung, da dieser Datenbanktyp speicherresidente Daten benötigt.However, if the working set of the performance critical tables does not fit in memory, In-Memory OLTP will not improve performance because it requires data to be memory resident. Wenn bei der Protokollierung ein E/A-Engpass auftritt, kann In-Memory OLTP diesen Engpass verringern, da weniger Protokollierungsaktivität durchgeführt wird.If you encounter an I/O bottleneck in logging, In-Memory OLTP can reduce the bottleneck because it does less logging. Wenn eine oder mehrere speicheroptimierte Tabellen als nicht dauerhafte Tabellen konfiguriert sind, können Sie dadurch die Protokollierung für Daten eliminieren.If one or more memory-optimized tables are configured as non-durable tables, you can eliminate logging for data.

SpeicherMemory
In-Memory OLTP bietet keine Leistungssteigerung.In-Memory OLTP does not offer any performance benefit. In-Memory OLTP kann den Arbeitsspeicher zusätzlich belasten, da die Objekte speicherresident sein müssen.In-Memory OLTP can put extra pressure on memory as the objects need to be memory resident.

NetzwerkNetwork
In-Memory OLTP bietet keine Leistungssteigerung.In-Memory OLTP does not offer any performance benefit. Die Daten müssen von der Datenebene an die Anwendungsebene übertragen werden.The data needs to be communicated from data tier to application tier.
SkalierbarkeitScalability

Die meisten Skalierungsprobleme bei SQL ServerSQL Server -Anwendungen werden durch Parallelitätsprobleme wie Konflikten bei Sperren, Latches und Spinlocks verursacht.Most scaling issues in SQL ServerSQL Server applications are caused by concurrency issues such as contention in locks, latches, and spinlocks.
LatchkonflikteLatch Contention
Ein typisches Szenario ist ein Konflikt auf der letzten Seite eines Indexes, wenn Zeilen gleichzeitig in Schlüsselreihenfolge einfügt werden.A typical scenario is contention on the last page of an index when inserting rows concurrently in key order. Da In-Memory OLTP beim Datenzugriff keine Latches verwendet, werden Skalierbarkeitsprobleme aufgrund von Latchkonflikten vollständig eliminiert.Because In-Memory OLTP does not take latches when accessing data, the scalability issues related to latch contentions are fully removed.

Spinlock-KonfliktSpinlock Contention
Da In-Memory OLTP beim Datenzugriff keine Latches verwendet, werden Skalierbarkeitsprobleme aufgrund von Spinlock-Konflikten vollständig eliminiert.Because In-Memory OLTP does not take latches when accessing data, the scalability issues related to spinlock contentions are fully removed.

Konflikte aufgrund von SperrenLocking Related Contention
Wenn in der Datenbankanwendung Blockierungen zwischen Lese- und Schreibvorgängen auftreten, werden diese Blockierungsprobleme durch In-Memory OLTP beseitigt, da es eine neue Art der optimistischen Nebenläufigkeitssteuerung für die Implementierung der Transaktionsisolationsstufen verwendet.If your database application encounters blocking issues between read and write operations, In-Memory OLTP removes the blocking issues because it uses a new form of optimistic concurrency control to implement all transaction isolation levels. In-Memory OLTP verwendet nicht TempDB, um Zeilenversionen zu speichern.In-Memory OLTP does not use TempDB to store row versions.

Wenn das Skalierungsproblem durch einen Konflikt zwischen zwei Schreibvorgängen verursacht wird, etwa zwei Transaktionen, die gleichzeitig dieselbe Zeile zu aktualisieren versuchen, führt In-Memory OLTP eine Transaktion erfolgreich durch und beendet die andere.If the scaling issue is caused by conflict between two write operations, such as two concurrent transactions trying to update the same row, In-Memory OLTP lets one transaction succeed and fails the other transaction. Die fehlgeschlagene Transaktion muss zur Wiederholung explizit oder implizit erneut gesendet werden.The failed transaction must be re-submitted either explicitly or implicitly, re-trying the transaction. In beiden Fällen müssen Sie Änderungen an der Anwendung vornehmen.In either case, you need to make changes to the application.

Wenn in der Anwendung häufig Konflikte zwischen zwei Schreibvorgängen auftreten, wird der Wert der optimistischen Sperre verringert.If your application experiences frequent conflicts between two write operations, the value of optimistic locking is diminished. Die Anwendung ist für In-Memory OLTP nicht geeignet.The application is not suitable for In-Memory OLTP. Die meisten OLTP-Anwendungen weisen keine Schreibkonflikte auf, sofern diese nicht durch Sperrenausweitung verursacht werden.Most OLTP applications don't have a write conflicts unless the conflict is induced by lock escalation.

Sicherheit auf Zeilenebene in speicheroptimierten TabellenRow-Level Security in Memory-Optimized Tables

Sicherheit auf Zeilenebene wird für speicheroptimierte Tabellen unterstützt.Row-Level Security is supported in memory-optimized tables. Richtlinien für die Sicherheit auf Zeilenebene werden auf speicheroptimierte Tabellen im Wesentlichen auf die gleiche Weise wie auf datenträgerbasierte Tabellen angewendet. Der einzige Unterschied ist, dass die als Sicherheitsprädikate verwendeten Inline-Tabellenwertfunktionen systemintern kompiliert (mit der Option WITH NATIVE_COMPILATION erstellt) werden müssen.Applying Row-Level Security policies to memory-optimized tables is essentially the same as disk-based tables, except that the inline table-valued functions used as security predicates must be natively compiled (created using the WITH NATIVE_COMPILATION option). Weitere Informationen finden Sie unter Row-Level Security (Sicherheit auf Zeilenebene) im Abschnitt Cross-Feature Compatibility (Funktionsübergreifende Kompatibilität).For details, see the Cross-Feature Compatibility section in the Row-Level Security topic.

Für speicherinterne Tabellen wurden verschiedene integrierte Sicherheitsfunktionen aktiviert, die für Sicherheit auf Zeilenebene wesentlich sind.Various built-in security functions that are essential to row-level security have been enabled for in-memory tables. Weitere Informationen finden Sie unter Integrierte Funktionen in nativ kompilierten Modulen.For details, see Built-in Functions in Natively Compiled Modules.

EXECUTE AS CALLER: Alle nativen Module unterstützen und verwenden jetzt standardmäßig EXECUTE AS CALLER, auch ohne entsprechenden Hinweis.EXECUTE AS CALLER - All native modules now support and use EXECUTE AS CALLER by default, even if the hint is not specified. Der Grund dafür ist, dass von allen Sicherheitsprädikatfunktionen auf Zeilenebene die Verwendung von EXECUTE AS CALLER erwartet wird, sodass die Funktion (und alle integrierten Funktionen, die in ihr verwendet werden) im Kontext des aufrufenden Benutzers ausgewertet wird.This is because it is expected that all row-level security predicate functions will use EXECUTE AS CALLER so that the function (and any built-in functions used within it) will be evaluated in the context of the calling user.
EXECUTE AS CALLER ist mit einer geringen Leistungseinbuße (ungefähr 10 %) verbunden, die durch das Überprüfen der Berechtigung des Aufrufers verursacht wird.EXECUTE AS CALLER has a small (approximately10%) performance hit caused by permission checks on the caller. Wenn das Modul explizit EXECUTE AS OWNER oder EXECUTE AS SELF angibt, werden diese Berechtigungsüberprüfungen und die entsprechenden Leistungseinbußen vermieden.If the module specifies EXECUTE AS OWNER or EXECUTE AS SELF explicitly, these permission checks and their associated performance cost will be avoided. Wenn jedoch eine dieser Optionen zusammen mit den oben beschriebenen integrierten Funktionen verwendet wird, kommt es aufgrund des erforderlichen Kontextwechsels zu einer erheblich höheren Leistungseinbuße.However, using either of these options together with the built-in functions above will incur a significantly higher performance hit due to the necessary context-switching.

SzenarienScenarios

Eine kurze Erläuterung typischer Szenarien, in denen die Leistung mit SQL Server InMemory OLTPSQL Server In-Memory OLTP verbessert werden kann, finden Sie unter In-Memory OLTP.For a brief discussion of typical scenarios where SQL Server InMemory OLTPSQL Server In-Memory OLTP can improve performance, see In-Memory OLTP.

Weitere InformationenSee Also

In-Memory-OLTP (Arbeitsspeicheroptimierung)In-Memory OLTP (In-Memory Optimization)