Tipos de Dados com Suporte para o OLTP na MemóriaSupported Data Types for In-Memory OLTP

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure SQL nãoAzure Synapse Analytics (SQL DW) nãoData Warehouse Paralelo APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Este artigo lista os tipos de dados que não têm suporte para os recursos do OLTP na Memória:This article lists the data types that are unsupported for the In-Memory OLTP features of:

  • Tabelas com otimização de memóriaMemory-optimized tables

  • Módulos do T-SQL compilados nativamenteNatively compiled T-SQL modules

Tipos de dados sem-suporteUnsupported Data Types

Não há suporte para os seguintes tipos de dados: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) Tipos definidos pelo usuárioUser-Defined Types ..

Tipos de Dados com Suporte ImportantesNotable Supported Data Types

A maioria dos tipos de dados é suportada pelos recursos do OLTP na Memória.Most data types are supported by the features of In-Memory OLTP. Vale a pena observar explicitamente o seguinte:The following few are worth noting explicitly:

Tipos de cadeia de caracteres e bináriosString and Binary Types Para obter mais informaçõesFor more information
binary e varbinary*binary and varbinary* binary e varbinary (Transact-SQL)binary and varbinary (Transact-SQL)
char e varchar*char and varchar* char e varchar (Transact-SQL)char and varchar (Transact-SQL)
nchar e nvarchar*nchar and nvarchar* nchar and nvarchar (Transact-SQL)nchar and nvarchar (Transact-SQL)

Para os tipos de dados da cadeia de caracteres e binários anteriores, começando com o SQL Server 2016:For the preceding string and binary data types, starting with SQL Server 2016:

  • Uma tabela individual com otimização de memória também pode ter várias colunas longas, como nvarchar(4000), mesmo que seus tamanhos somem mais do que o tamanho físico da linha com 8.060 bytes.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.

  • Uma tabela com otimização de memória pode ter colunas da cadeia de caracteres e binárias com um tamanho máximo dos tipos de dados, como varchar(max).A memory-optimized table can have max length string and binary columns of data types such as varchar(max).

Identificar LOBs e outras colunas que estão fora de linhaIdentify LOBs and other columns that are off-row

Começando com o SQL Server 2016, as tabelas com otimização de memória dão suporte a colunas fora de linha, permitindo que uma única linha da tabela seja maior que 8060 bytes.Starting with SQL Server 2016, memory-optimized tables support off-row columns, which allow a single table row to be larger than 8060 bytes. A instrução SELECT do Transact-SQL a seguir relata todas as colunas que estão fora de linha em tabelas com otimização de memória.The following Transact-SQL SELECT statement reports all columns that are off-row, for memory-optimized tables. Observe que:Note that:

  • Todas as colunas de chave de índice são armazenadas em linha.All index key columns are stored in-row.
    • Chaves de índice não exclusivas agora podem incluir colunas que permitem valor nulo, em tabelas com otimização de memória.Nonunique index keys can now include NULLable columns, on memory-optimized tables.
    • Índices podem ser declarados como UNIQUE em uma tabela com otimização de memória.Indexes can be declared as UNIQUE on a memory-optimized table.
  • Todas as colunas LOB são armazenadas fora de linha.All LOB columns are stored off-row.
  • Um max_length de -1 indica uma coluna LOB (objeto grande).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;

Outros tipos de dadosOther Data Types

Outros TiposOther Types Para obter mais informaçõesFor more information
tipos de tabelatable types Variáveis de tabela com otimização de memóriaMemory-Optimized Table Variables

Consulte TambémSee Also

Suporte ao Transact-SQL para OLTP na memória Transact-SQL Support for In-Memory OLTP
Implementando SQL_VARIANT em uma tabela com otimização de memóriaImplementing SQL_VARIANT in a Memory-Optimized Table
Tamanho da tabela e de linha em tabelas com otimização de memóriaTable and Row size in Memory-Optimized Table