Tipos de dados de tabela para o pool de SQL dedicado (antigo SQL DW) no Azure Synapse Analytics

Este artigo inclui recomendações para definir tipos de dados de tabela no pool de SQL dedicado.

Tipos de dados com suporte

O pool de SQL dedicado (antigo SQL DW) dá suporte aos tipos de dados mais usados. Para obter uma lista dos tipos de dados com suporte, consulte tipos de dados na instrução CREATE TABLE.

Minimizar o tamanho da linha

Minimizar o tamanho dos tipos de dados reduz o tamanho da linha, o que leva a um desempenho de consulta melhor. Use o menor tipo de dados que funcione para seus dados.

  • Evite definir as colunas de caractere como um tamanho padrão grande. Por exemplo, se o maior valor for 25 caracteres, defina a coluna como VARCHAR(25).
  • Evite usar NVARCHAR quando precisar somente de VARCHAR.
  • Quando possível, use NVARCHAR(4000) ou VARCHAR(8000) em vez de NVARCHAR(MAX) ou VARCHAR(MAX).

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

Identificar tipos de dados sem suporte

Se você estiver migrando o banco de dados de outro banco de dados SQL, poderá encontrar alguns tipos de dados que não têm suporte no pool de SQL dedicado. Use a seguinte consulta para descobrir os tipos de dados sem suporte em seu 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 alternativas para os tipos de dados sem suporte

A lista a seguir mostra os tipos de dados aos quais o pool de SQL dedicado (antigo SQL DW) não dá suporte e fornece alternativas úteis para tipos de dados sem suporte.

Tipos de dados sem suporte Solução alternativa
geometria varbinary
geografia varbinary
hierarchyid nvarchar(4000)
imagem varbinary
text varchar
ntext nvarchar
sql_variant Divida a coluna em várias colunas fortemente tipadas.
table Converta em tabelas temporárias.
timestamp Refazer o código para usar datetime2 e a função CURRENT_TIMESTAMP. Somente as constantes têm suporte como padrões, portanto, current_timestamp não pode ser definido como uma restrição padrão. Se precisar migrar os valores de versão de linha de uma coluna do tipo carimbo de data/hora, use BINARY(8) ou VARBINARY(8) para os valores de versão de linha NULL ou NOT NULL.
xml varchar
Tipos definidos pelo usuário Converta para o tipo de dados nativo quando possível.
valores padrão Os valores padrão dão suporte somente a literais e constantes.

Próximas etapas

Para obter mais informações sobre o desenvolvimento de tabelas, consulte Visão geral da tabela.