Tipos de datos de tabla del grupo de SQL dedicado (anteriormente SQL DW) en Azure Synapse Analytics
En este artículo se incluyen recomendaciones para definir los tipos de datos de tabla en el grupo de SQL dedicado.
Tipos de datos admitidos
El grupo de SQL dedicado (anteriormente SQL DW) admite los tipos de datos usados más comúnmente. Para obtener una lista de los tipos de datos admitidos, consulte tipos de datos en la instrucción CREATE TABLE.
Minimizar la longitud de fila
Minimizar el tamaño de los tipos de datos acorta la longitud de fila, lo que conduce a un mejor rendimiento de las consultas. Utilice el tipo de datos más pequeño que sirva para los datos.
- Evite definir las columnas de caracteres con una longitud predeterminada de gran tamaño. Por ejemplo, si el valor más largo es de 25 caracteres, defina la columna como VARCHAR(25).
- Evite el uso de NVARCHAR cuando solo necesite VARCHAR.
- Utilice NVARCHAR(4000) o VARCHAR(8000) cuando sea posible en lugar de NVARCHAR(MAX) o VARCHAR(MAX).
Si usa tablas externas de PolyBase para cargar las tablas, la longitud definida para la fila de la tabla no puede superar 1 MB. Cuando una fila con datos de longitud variable supera 1 MB, puede cargar la fila con BCP, pero no con PolyBase.
Identificar los tipos de datos no admitidos
Si va a migrar la base de datos desde otra base de datos SQL, puede encontrar tipos de datos que no se admiten en el grupo de SQL dedicado. Utilice la siguiente consulta para detectar tipos de datos no admitidos en el 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;
Soluciones alternativas para los tipos de datos no admitidos
En la lista siguiente se muestran los tipos de datos que el grupo de SQL dedicado (anteriormente SQL DW) no admite, y proporciona alternativas útiles para los tipos de datos no admitidos.
Tipo de datos no admitido | Solución alternativa |
---|---|
geometry | varbinary |
geography | varbinary |
hierarchyid | nvarchar(4000) |
image | varbinary |
text | varchar |
ntext | nvarchar |
sql_variant | Divida la columna en varias columnas fuertemente tipadas. |
table | Convierta en tablas temporales. |
timestamp | Cambie el código para usar datetime2 y la función CURRENT_TIMESTAMP. Solo se admiten las constantes como valores predeterminados, por lo tanto, current_timestamp no se puede definir como una restricción predeterminada. Si tiene que migrar valores de la versión de fila de una columna de tipo timestamp, use BINARY(8) o VARBINARY(8) para valores de versión de fila NOT NULL o NULL. |
xml | varchar |
tipo definido por el usuario | Volver a convertir el tipo de datos nativo cuando sea posible. |
valores predeterminados | Los valores predeterminados solo admiten literales y constantes. |
Pasos siguientes
Para obtener más información sobre el desarrollo de tablas, vea Información general sobre tablas.