Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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".