Tipos de dados de tabela para o conjunto de SQL dedicado (anteriormente SQL DW) no Azure Synapse Analytics

Neste artigo estão incluídas recomendações para definir tipos de dados de tabela no conjunto de SQL dedicado.

Tipos de dados suportados

O Conjunto de SQL dedicado (anteriormente SQL DW) suporta os tipos de dados mais utilizados. Para obter uma lista dos tipos de dados suportados, veja tipos de dados na instrução CREATE TABLE.

Minimizar o comprimento da linha

Minimizar o tamanho dos tipos de dados reduz o comprimento da linha, o que leva a um melhor desempenho das consultas. Utilize o tipo de dados mais pequeno que funcione para os seus dados.

  • Evite definir colunas de carateres com um comprimento predefinido grande. Por exemplo, se o valor mais longo for de 25 carateres, defina a coluna como VARCHAR(25).
  • Evite utilizar o NVARCHAR quando precisar apenas de VARCHAR.
  • Sempre que possível, utilize NVARCHAR(4000) ou VARCHAR(8000) em vez de NVARCHAR(MAX) ou VARCHAR(MAX).

Se estiver a utilizar tabelas externas do PolyBase para carregar as tabelas, o comprimento definido da linha da tabela não pode exceder 1 MB. Quando uma linha com dados de comprimento variável exceder 1 MB, pode carregar a linha com BCP, mas não com o PolyBase.

Identificar tipos de dados não suportados

Se estiver a migrar a base de dados a partir de outra base de dados SQL, poderá encontrar tipos de dados que não são suportados no conjunto de SQL dedicado. Utilize a seguinte consulta para detetar tipos de dados não suportados no esquema SQL existente:

SELECT  t.[name], c.[name], c.[system_type_id], c.[user_type_id], y.[is_user_defined], y.[name]
FROM sys.tables  t
JOIN sys.columns c on t.[object_id]    = c.[object_id]
JOIN sys.types   y on c.[user_type_id] = y.[user_type_id]
WHERE y.[name] IN ('geography','geometry','hierarchyid','image','text','ntext','sql_variant','xml')
 AND  y.[is_user_defined] = 1;

Soluções para tipos de dados não suportados

A lista seguinte mostra os tipos de dados que o conjunto de SQL dedicado (anteriormente SQL DW) não suporta e fornece alternativas úteis para tipos de dados não suportados.

Tipo de dados não suportado Solução
geometria varbinary
geografia varbinary
hierarchyid nvarchar(4000)
imagem varbinary
texto varchar
ntext nvarchar
sql_variant Divida a coluna em várias colunas com tipos de letra fortes.
table Converter em tabelas temporárias.
carimbo de data/hora Reformular o código para utilizar datetime2 e a função CURRENT_TIMESTAMP . Apenas as constantes são suportadas como predefinições, pelo que current_timestamp não podem ser definidas como uma restrição predefinida. Se precisar de migrar valores da versão da linha a partir de uma coluna digitada com carimbo de data/hora, utilize BINARY(8) ou VARBINARY(8) para valores DE VERSÃO NULL ou NULL da versão da linha.
xml varchar
tipo definido pelo utilizador Converta novamente para o tipo de dados nativo sempre que possível.
valores predefinidos Os valores predefinidos suportam apenas literais e constantes.

Passos seguintes

Para obter mais informações sobre o desenvolvimento de tabelas, consulte Descrição Geral da Tabela.