Compartir vía


Tipos de datos de tabla para un almacén de SQL dedicado (anteriormente SQL DW) en Azure Synapse Analytics

En este artículo se incluyen recomendaciones para definir tipos de datos de tabla en un grupo de SQL dedicado.

Supported data types (Tipos de datos admitidos)

El grupo de SQL dedicado (anteriormente SQL DW) admite los tipos de datos más usados. 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

Al minimizar el tamaño de los tipos de datos, se reduce la longitud de fila, lo que da lugar a un mejor rendimiento de las consultas. Utiliza el tipo de datos más pequeño que funcione para tus datos.

  • Evite definir columnas de caracteres con una longitud predeterminada grande. Por ejemplo, si el valor más largo es de 25 caracteres, defina la columna como VARCHAR(25).
  • Evite usar NVARCHAR cuando solo necesite VARCHAR.
  • Cuando sea posible, use NVARCHAR(4000) o VARCHAR(8000) en lugar de NVARCHAR(MAX) o VARCHAR(MAX).

Si usa tablas externas de PolyBase para cargar las tablas, la longitud definida de la fila de tabla no puede superar los 1 MB. Cuando una fila con datos de longitud variable supera los 1 MB, puede cargar la fila con BCP, pero no con PolyBase.

Identificación de 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. Use la consulta siguiente para detectar tipos de datos no admitidos en el 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;

Soluciones alternativas para 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 ofrece 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 Dividir la columna en varias columnas fuertemente tipadas.
table Convertir en tablas temporales.
timestamp Vuelva a trabajar el código para usar datetime2 y la función CURRENT_TIMESTAMP . Solo se admiten constantes como valores predeterminados, por lo que 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 Vuelva al 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, consulte Información general sobre tablas.