Freigeben über


Tabellendatentypen für dedizierten SQL-Pool (ehemals SQL DW) in Azure Synapse Analytics

Dieser Artikel enthält Empfehlungen zum Definieren von Tabellendatentypen in dediziertem SQL-Pool.

Unterstützte Datentypen

Dedizierter SQL-Pool (früher SQL DW) unterstützt die am häufigsten verwendeten Datentypen. Eine Liste der unterstützten Datentypen finden Sie in der CREATE TABLE-Anweisung unter Datentypen .

Minimieren der Zeilenlänge

Die Minimierung der Größe von Datentypen verkürzt die Zeilenlänge, was zu einer besseren Abfrageleistung führt. Verwenden Sie den kleinsten Datentyp, der für Ihre Daten funktioniert.

  • Vermeiden Sie die Definition von Zeichenspalten mit einer großen Standardlänge. Wenn der längste Wert beispielsweise 25 Zeichen ist, definieren Sie Ihre Spalte als VARCHAR(25).
  • Vermeiden Sie die Verwendung von NVARCHAR , wenn Sie nur VARCHAR benötigen.
  • Verwenden Sie nach Möglichkeit NVARCHAR(4000) oder VARCHAR(8000) anstelle von NVARCHAR(MAX) oder VARCHAR(MAX).

Wenn Sie externe PolyBase-Tabellen zum Laden Ihrer Tabellen verwenden, darf die definierte Länge der Tabellenzeile 1 MB nicht überschreiten. Wenn eine Zeile mit Daten variabler Länge 1 MB überschreitet, können Sie die Zeile mit BCP laden, aber nicht mit PolyBase.

Identifizieren nicht unterstützter Datentypen

Wenn Sie Ihre Datenbank aus einer anderen SQL-Datenbank migrieren, finden Sie möglicherweise Datentypen, die im dedizierten SQL-Pool nicht unterstützt werden. Verwenden Sie die folgende Abfrage, um nicht unterstützte Datentypen in Ihrem vorhandenen SQL-Schema zu ermitteln:

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;

Problemumgehungen für nicht unterstützte Datentypen

In der folgenden Liste sind die Datentypen aufgeführt, die einen dedizierten SQL-Pool (früher SQL DW) nicht unterstützen und nützliche Alternativen für nicht unterstützte Datentypen bieten.

Nicht unterstützter Datentyp Workaround
geometry varbinary
geography varbinary
hierarchyid nvarchar(4000)
image varbinary
Text varchar
ntext nvarchar
sql_variant Teilen Sie die Spalte in mehrere stark typisierte Spalten auf.
Tabelle In temporäre Tabellen konvertieren.
timestamp Überarbeite den Code, um datetime2 und die Funktion CURRENT_TIMESTAMP zu verwenden. Nur Konstanten werden als Standard unterstützt, sodass current_timestamp nicht als Standardeinschränkung definiert werden können. Wenn Sie Zeilenversionswerte aus einer eingegebenen Zeitstempelspalte migrieren müssen, verwenden Sie BINARY(8) oder VARBINARY(8) für NICHT NULL- oder NULL-Zeilenversionswerte.
xml varchar
benutzerdefinierter Typ Konvertieren Sie nach Möglichkeit wieder in den systemeigenen Datentyp.
Standardwerte Standardwerte unterstützen nur Literale und Konstanten.

Nächste Schritte

Weitere Informationen zum Entwickeln von Tabellen finden Sie unter "Table Overview".