Tipi di dati supportati per OLTP In memoria

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di Azure

Questo articolo elenca i tipi di dati che non sono supportati per le funzionalità OLTP In memoria di:

  • Tabelle ottimizzate per la memoria

  • Moduli T-SQL compilati in modo nativo

Tipi di dati non supportati

I tipi di dati indicati di seguito non sono supportati:

Tipi di dati supportati rilevanti

La maggior parte dei tipi di dati è supportata dalle funzionalità di OLTP In memoria. Di seguito sono riportati alcuni tipi che vale la pena notare in modo esplicito:

Tipi stringa e binari Ulteriori informazioni
binary e varbinary* binary e varbinary (Transact-SQL)
char e varchar* char and varchar (Transact-SQL)
nchar e nvarchar* nchar e nvarchar (Transact-SQL)

Per i precedenti tipi di dati string e binary, a partire da 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.

  • 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).

Identificare le colonne LOB e altre colonne che si trovano all'esterno di righe

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. L'istruzione Transact-SQL SELECT seguente restituisce tutte le colonne che si trovano all'esterno di righe, per tabelle ottimizzate per la memoria. Tenere presente quanto segue:

  • Tutte le colonne chiave di indice vengono archiviate all'interno di righe.
    • Le chiavi di indice non univoche possono ora includere colonne che ammettono valori Null in tabelle ottimizzate per la memoria.
    • Gli indici possono essere dichiarati come UNIQUE in una tabella ottimizzata per la memoria.
  • Tutte le colonne LOB vengono archiviate all'esterno di righe.
  • Un valore max_length pari a -1 indica una colonna con oggetti LOB.
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 dati

Altri tipi Ulteriori informazioni
tipi di tabella Variabili di tabella con ottimizzazione per la memoria

Vedi anche

Supporto di Transact-SQL per OLTP in memoria
Implementazione di SQL_VARIANT in una tabella con ottimizzazione per la memoria
Dimensioni di tabelle e righe per le tabelle con ottimizzazione per la memoria