Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Tip
Microsoft Fabric Data Warehouse är ett relationslager i företagsskala på en datasjögrund med en framtidsklar arkitektur, inbyggd AI och nya funktioner. Om du är nybörjare på datalager börjar du med Fabric Data Warehouse. Befintliga dedicerade SQL-poolarbetsbelastningar kan uppgraderas till Fabric för att få åtkomst till nya funktioner inom datavetenskap, realtidsanalys och rapportering.
I den här artikeln ingår rekommendationer för att definiera tabelldatatyper i en dedikerad SQL-pool.
Datatyper som stöds
Dedikerad SQL-pool (tidigare SQL DW) stöder de vanligaste datatyperna. En lista över de datatyper som stöds finns i datatyper i CREATE TABLE-instruktionen.
Minimera radlängd
Om du minimerar storleken på datatyper förkortas radlängden, vilket ger bättre frågeprestanda. Använd den minsta datatypen som fungerar för dina data.
- Undvik att definiera teckenkolumner med en stor standardlängd. Om det längsta värdet till exempel är 25 tecken definierar du kolumnen som VARCHAR(25).
- Undvik att använda NVARCHAR när du bara behöver VARCHAR.
- Om möjligt använder du NVARCHAR(4000) eller VARCHAR(8000) i stället för NVARCHAR(MAX) eller VARCHAR(MAX).
Om du använder externa PolyBase-tabeller för att läsa in dina tabeller får den definierade längden på tabellraden inte överstiga 1 MB. När en rad med variabellängdsdata överskrider 1 MB kan du läsa in raden med BCP, men inte med PolyBase.
Identifiera datatyper som inte stöds
Om du migrerar databasen från en annan SQL-databas kanske du hittar datatyper som inte stöds i en dedikerad SQL-pool. Använd följande fråga för att identifiera datatyper som inte stöds i ditt befintliga SQL-schema:
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;
Lösningar för datatyper som inte stöds
I följande lista visas de datatyper som den dedikerade SQL-poolen (tidigare SQL DW) inte stöder och ger användbara alternativ för datatyper som inte stöds.
| Datatypen stöds inte | Omgångslösning |
|---|---|
| geometry | varbinary |
| geografi | varbinary |
| hierarchyid | nvarchar(4000) |
| bild | varbinary |
| text | varchar |
| ntext | nvarchar |
| sql_variant | Dela upp kolumnen i flera starkt skrivna kolumner. |
| tabell | Konvertera till temporära tabeller. |
| Tidsstämpel | Omarbeta kod för att använda datetime2 och funktionen CURRENT_TIMESTAMP . Endast konstanter stöds som standardvärden, så current_timestamp kan inte definieras som standardvillkor. Om du behöver migrera radversionsvärden från en kolumn med tidsstämpeltyp, använder du BINARY(8) eller VARBINARY(8) för radversionsvärden som är NOT NULL eller NULL. |
| xml | varchar |
| användardefinierad typ | Konvertera tillbaka till den interna datatypen när det är möjligt. |
| Standardvärden | Standardvärden stöder endast literaler och konstanter. |
Nästa steg
Mer information om hur du utvecklar tabeller finns i Tabellöversikt.