Tipi di dati supportati per OLTP In memoriaSupported Data Types for In-Memory OLTP

In questo argomento si applica a: SìSQL ServerSìDatabase SQL di AzurenonAzure SQL Data Warehouse non Parallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL ServeryesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Questo articolo elenca i tipi di dati che non sono supportati per le funzionalità OLTP In memoria di:This article lists the data types that are unsupported for the In-Memory OLTP features of:

  • Tabelle con ottimizzazione per la memoriaMemory-optimized tables

  • Moduli T-SQL compilati in modo nativoNatively compiled T-SQL modules

Tipi di dati non supportatiUnsupported Data Types

I tipi di dati indicati di seguito non sono supportati:The following data types are not supported:

datetimeoffset (Transact-SQL)datetimeoffset (Transact-SQL) geography (Transact-SQL)geography (Transact-SQL) geometry (Transact-SQL)geometry (Transact-SQL)
hierarchyid (Transact-SQL)hierarchyid (Transact-SQL) rowversion (Transact-SQL)rowversion (Transact-SQL) xml (Transact-SQL)xml (Transact-SQL)
sql_variant (Transact-SQL)sql_variant (Transact-SQL) Tipi definiti dall'utenteUser-Defined Types ..

Tipi di dati supportati rilevantiNotable Supported Data Types

La maggior parte dei tipi di dati è supportata dalle funzionalità di OLTP In memoria.Most data types are supported by the features of In-Memory OLTP. Di seguito sono riportati alcuni tipi che vale la pena notare in modo esplicito:The following few are worth noting explicitly:

Tipi stringa e binariString and Binary Types Per ulteriori informazioniFor more information
binary e varbinarybinary and varbinary binary e varbinary (Transact-SQL)binary and varbinary (Transact-SQL)
char e varcharchar and varchar char e varchar (Transact-SQL)char and varchar (Transact-SQL)
nchar e nvarcharnchar and nvarchar nchar e nvarchar (Transact-SQL)nchar and nvarchar (Transact-SQL)

Per i precedenti tipi di dati string e binary, a partire da SQL Server 2016:For the preceding string and binary data types, starting with SQL Server 2016:

  • Una singola tabella ottimizzata per la memoria può contenere anche diverse colonne di grandi dimensioni, ad esempio nvarchar(4000), anche se il totale delle relative lunghezze sarebbe superiore a quello delle dimensioni fisiche della riga di 8060 byte.An individual memory-optimized table can also have several long columns such as nvarchar(4000), even though their lengths would add to more than the physical row size of 8060 bytes.

  • Una tabella ottimizzata per la memoria può includere colonne di tipo string e binary di lunghezza massima dei tipi di dati, ad esempio varchar(max).A memory-optimized table can have max length string and binary columns of data types such as varchar(max).

Identificare le colonne LOB e altre colonne che si trovano all'esterno di righeIdentify LOBs and other columns that are off-row

A partire da SQL Server 2016, le tabelle ottimizzate per la memoria supportano colonne all'esterno di righe, che consentono a una singola riga di tabella di superare la dimensione di 8060 byte.Starting with SQL Server 2016, memory-optimized tables support off-row columns, which allow a single table row to be larger than 8060 bytes. L'istruzione Transact-SQL SELECT seguente restituisce tutte le colonne che si trovano all'esterno di righe, per tabelle ottimizzate per la memoria.The following Transact-SQL SELECT statement reports all columns that are off-row, for memory-optimized tables. Tenere presente quanto segue:Note that:

  • Tutte le colonne chiave di indice vengono archiviate all'interno di righe.All index key columns are stored in-row.
    • Le chiavi di indice non univoche possono ora includere colonne che ammettono valori Null in tabelle ottimizzate per la memoria.Nonunique index keys can now include NULLable columns, on memory-optimized tables.
    • Gli indici possono essere dichiarati come UNIQUE in una tabella ottimizzata per la memoria.Indexes can be declared as UNIQUE on a memory-optimized table.
  • Tutte le colonne LOB vengono archiviate all'esterno di righe.All LOB columns are stored off-row.
  • Un valore max_length pari a -1 indica una colonna con oggetti LOB.A max_length of -1 indicates a large object (LOB) column.
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;

Altri tipi di datiOther Data Types

Altri tipiOther Types Per ulteriori informazioniFor more information
tipi di tabellatable types Variabili di tabella con ottimizzazione per la memoriaMemory-Optimized Table Variables

Vedere ancheSee Also

Supporto di Transact-SQL per OLTP in memoria Transact-SQL Support for In-Memory OLTP
Implementazione di SQL_VARIANT in una tabella con ottimizzazione per la memoriaImplementing SQL_VARIANT in a Memory-Optimized Table
Dimensioni di tabelle e righe per le tabelle con ottimizzazione per la memoriaTable and Row size in Memory-Optimized Table