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.