Unterstützte Datentypen für In-Memory OLTP
Gilt für: SQL Server
Azure SQL-Datenbank
Azure SQL Managed Instance
In diesem Artikel werden die Datentypen aufgeführt, die keine Unterstützung erhalten für die In-Memory OLTP-Features für:
Speicheroptimierte Tabellen
Nativ kompilierte T-SQL-Module
Nicht unterstützte Datentypen
Die folgenden Datentypen werden nicht unterstützt:
Wichtige unterstützte Datentypen
Die meisten Datentypen werden von den Features von In-Memory OLTP unterstützt. Im folgenden Typen sollten explizit beachtet werden:
Zeichenfolgen- und Binärtypen | Weitere Informationen |
---|---|
binary und varbinary* | binary und varbinary (Transact-SQL) |
char und varchar* | char und varchar (Transact-SQL) |
nchar und nvarchar* | nchar und nvarchar (Transact-SQL) |
Für die vorhergehenden Zeichenfolgen- und binären Datentypen ab SQL Server 2016:
Eine einzelne speicheroptimierte Tabelle kann auch mehrere lange Spalten wie
nvarchar(4000)
enthalten, obwohl ihre Länge die physische Zeilengröße von 8060 Bytes überschreiten würde.Eine speicheroptimierte Tabelle kann Zeichenfolgen mit maximaler Länge und binären Spalten mit Datentypen wie
varchar(max)
beinhalten.
Identifizieren von LOBs und anderen Spalten außerhalb von Zeilen
Beginnend mit SQL Server 2016, unterstützen speicheroptimierte Tabellen Spalten außerhalb von Zeilen, die eine einzelne Tabellenzeile größer sein als 8060 Bytes zu ermöglichen. Die folgende Transact-SQL-SELECT-Anweisung gibt für speicheroptimierte Tabellen alle Spalten zurück, die sich außerhalb von Zeilen befinden. Beachten Sie dabei Folgendes:
- Alle Indexschlüsselspalten werden innerhalb von Zeilen gespeichert.
- Nicht eindeutige Indexschlüssel in speicheroptimierten Tabellen können auf NULL festlegbare Spalten enthalten.
- Indizes können in einer speicheroptimierte Tabelle als UNIQUE deklariert werden.
- Alle LOB-Spalten werden außerhalb von Zeilen gespeichert.
- Ein max_length-Wert „-1“ gibt eine Spalte mit großen Objekten (Large Objects, LOBs) an.
SELECT
OBJECT_NAME(m.object_id) as [table],
c.name as [column],
c.max_length
FROM
sys.memory_optimized_tables_internal_attributes AS m
JOIN sys.columns AS c
ON m.object_id = c.object_id
AND m.minor_id = c.column_id
WHERE
m.type = 5;
Andere Datentypen
Andere Typen | Weitere Informationen |
---|---|
Tabellentypen | Speicheroptimierte Tabellenvariablen |
Weitere Informationen
Transact-SQL-Unterstützung für OLTP im Arbeitsspeicher
Implementieren von SQL_VARIANT in einer speicheroptimierten Tabelle
Tabellen- und Zeilengröße in speicheroptimierten Tabellen