Partilhar via


Table data types for dedicated SQL pool (formerly SQL DW) in Azure Synapse Analytics

Incluídas neste artigo estão recomendações para definir tipos de dados de tabela no pool SQL dedicado.

Tipos de dados suportados

O pool SQL dedicado (anteriormente SQL DW) oferece suporte aos tipos de dados mais usados. Para obter uma lista dos tipos de dados suportados, consulte os tipos de dados na instrução CREATE TABLE.

Minimize row length

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

  • Evite definir colunas de caracteres com um grande comprimento padrão. Por exemplo, se o valor mais longo for de 25 caracteres, defina sua coluna como VARCHAR(25).
  • Evite usar NVARCHAR quando você só precisa 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 suas tabelas, o comprimento definido da linha da tabela não poderá exceder 1 MB. Quando uma linha com dados de comprimento variável excede 1 MB, você pode carregar a linha com BCP, mas não com PolyBase.

Identificar tipos de dados sem suporte

Se você estiver migrando seu banco de dados de outro banco de dados SQL, poderá encontrar tipos de dados sem suporte no pool SQL dedicado. Use a seguinte consulta para descobrir 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 tipos de dados sem suporte

A lista a seguir mostra os tipos de dados que o pool SQL dedicado (anteriormente SQL DW) não oferece suporte e fornece alternativas úteis para tipos de dados sem suporte.

Tipo de dados não suportado Solução
geometria Varbinary
geografia Varbinary
hierarchyid Nvarchar(4000)
imagem Varbinary
texto Varchar
ntext nvarchar
sql_variant Split column into several strongly typed columns.
tabela Converter em tabelas temporárias.
timestamp Retrabalhe o código para usar datetime2 e a função CURRENT_TIMESTAMP . Somente constantes são suportadas como padrão, portanto, current_timestamp não pode ser definida como uma restrição padrão. If you need to migrate row version values from a timestamp typed column, use BINARY(8) or VARBINARY(8) for NOT NULL or NULL row version values.
xml Varchar
Tipo definido pelo usuário Converta novamente para o tipo de dados nativo quando possível.
valores padrão Os valores padrão suportam apenas literais e constantes.

Próximos passos

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