Tipos de Dados com Suporte para o OLTP na Memória
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure
Este artigo lista os tipos de dados que não têm suporte para os recursos do OLTP na Memória:
Tabelas com otimização de memória
Módulos do T-SQL compilados nativamente
Tipos de dados sem-suporte
Não há suporte para os seguintes tipos de dados:
Tipos de Dados com Suporte Importantes
A maioria dos tipos de dados é suportada pelos recursos do OLTP na Memória. Vale a pena observar explicitamente o seguinte:
Tipos de cadeia de caracteres e binários | Para obter mais informações |
---|---|
binary e varbinary* | binary e varbinary (Transact-SQL) |
char e varchar* | char e varchar (Transact-SQL) |
nchar e nvarchar* | nchar e nvarchar (Transact-SQL) |
Para os tipos de dados da cadeia de caracteres e binários anteriores, começando com o 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.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)
.
Identificar LOBs e outras colunas que estão fora de linha
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. 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. Observe que:
- Todas as colunas de chave de índice são armazenadas em linha.
- Chaves de índice não exclusivas agora podem incluir colunas que permitem valor nulo, em tabelas com otimização de memória.
- Índices podem ser declarados como UNIQUE em uma tabela com otimização de memória.
- Todas as colunas LOB são armazenadas fora de linha.
- Um max_length de -1 indica uma coluna LOB (objeto grande).
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 dados
Outros Tipos | Para obter mais informações |
---|---|
tipos de tabela | Variáveis de tabela com otimização de memória |
Confira também
Suporte ao Transact-SQL para OLTP na memória
Implementando SQL_VARIANT em uma tabela com otimização de memória
Tamanho da tabela e de linha em tabelas com otimização de memória