Tipos de dados de tabela para piscina de SQL dedicada (anteriormente SQL DW) em Azure Synapse Analytics

Incluídos neste artigo estão recomendações para a definição de tipos de dados de tabelas em SQL dedicada.

Tipos de dados suportados

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

Minimizar o comprimento da linha

Minimizar o tamanho dos tipos de dados encurta o comprimento da linha, o que leva a um melhor desempenho de consulta. Utilize o menor tipo de dados que funciona para os seus dados.

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

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

Identificar tipos de dados não suportados

Se estiver a migrar a sua base de dados de outra base de dados SQL, poderá encontrar tipos de dados que não sejam suportados em SQL conjunto dedicado. Utilize a seguinte consulta para descobrir tipos de dados não suportados no seu esquema de 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 alternativas para tipos de dados não suportados

A lista que se segue mostra os tipos de dados que dedicaram SQL pool (anteriormente SQL DW) não suportam e oferece alternativas úteis para tipos de dados não suportados.

Tipo de dados não suportado Solução
geometria varbinário
geografia varbinário
hierarquia nvarchar(4000)
imagem varbinário
Texto varchar
ntext nvarchar
sql_variant Divida a coluna em várias colunas fortemente dactilografada.
table Converter-se em mesas temporárias.
timetamp Retraia o código para utilizar a data 2 e a função CURRENT_TIMESTAMP . Apenas as constantes são suportadas como padrão, por isso current_timestamp não podem ser definidas como uma restrição padrão. Se precisar de migrar os valores da versão da linha a partir de uma coluna de etiqueta de tempo, utilize BINARY(8) ou VARBINARY(8) para valores de linha NÃO NULOS ou NULOS.
xml varchar
tipo definido pelo utilizador Converta-se de volta para o tipo de dados nativo quando possível.
valores de incumprimento Valores predefinidos suportam apenas as constantes e literais.

Passos seguintes

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