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 nãoSQL Data Warehouse do Azure nãoParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse 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