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.