Tabelgegevenstypen voor toegewezen SQL-pool (voorheen SQL DW) in Azure Synapse Analytics

In dit artikel zijn aanbevelingen opgenomen voor het definiëren van tabelgegevenstypen in een toegewezen SQL-pool.

Ondersteunde gegevenstypen

Toegewezen SQL-pool (voorheen SQL DW) ondersteunt de meest gebruikte gegevenstypen. Zie gegevenstypen in de instructie CREATE TABLE voor een lijst met ondersteunde gegevenstypen.

Rijlengte minimaliseren

Het minimaliseren van de grootte van gegevenstypen verkort de rijlengte, wat leidt tot betere queryprestaties. Gebruik het kleinste gegevenstype dat geschikt is voor uw gegevens.

  • Vermijd het definiëren van tekenkolommen met een grote standaardlengte. Als de langste waarde bijvoorbeeld 25 tekens is, definieert u de kolom als VARCHAR(25).
  • Vermijd het gebruik van NVARCHAR wanneer u alleen VARCHAR nodig hebt.
  • Gebruik indien mogelijk NVARCHAR(4000) of VARCHAR(8000) in plaats van NVARCHAR(MAX) of VARCHAR(MAX).

Als u externe PolyBase-tabellen gebruikt om uw tabellen te laden, mag de gedefinieerde lengte van de tabelrij niet groter zijn dan 1 MB. Wanneer een rij met gegevens met een variabele lengte groter is dan 1 MB, kunt u de rij laden met BCP, maar niet met PolyBase.

Niet-ondersteunde gegevenstypen identificeren

Als u uw database migreert vanuit een andere SQL-database, vindt u mogelijk gegevenstypen die niet worden ondersteund in een toegewezen SQL-pool. Gebruik de volgende query om niet-ondersteunde gegevenstypen in uw bestaande SQL-schema te detecteren:

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;

Tijdelijke oplossingen voor niet-ondersteunde gegevenstypen

De volgende lijst bevat de gegevenstypen die de toegewezen SQL-pool (voorheen SQL DW) niet ondersteunt en bevat nuttige alternatieven voor niet-ondersteunde gegevenstypen.

Niet-ondersteund gegevenstype Tijdelijke oplossing
Geometrie varbinary
Geografie varbinary
hierarchyid nvarchar(4000)
Afbeelding varbinary
Tekst varchar
ntext nvarchar
sql_variant Kolom splitsen in verschillende sterk getypte kolommen.
table Converteren naar tijdelijke tabellen.
Tijdstempel Code herwerken om datetime2 en de functie CURRENT_TIMESTAMP te gebruiken. Alleen constanten worden ondersteund als standaardwaarden, zodat current_timestamp niet als een standaardbeperking kan worden gedefinieerd. Als u rijversiewaarden wilt migreren van een tijdstempel getypeerde kolom, gebruikt u BINARY(8) of VARBINARY(8) voor NOT NULL- of NULL-rijversiewaarden.
Xml varchar
door de gebruiker gedefinieerd type Converteer indien mogelijk terug naar het systeemeigen gegevenstype.
standaardwaarden Standaardwaarden ondersteunen alleen letterlijke waarden en constanten.

Volgende stappen

Zie Tabeloverzicht voor meer informatie over het ontwikkelen van tabellen.