Typy danych tabeli dla dedykowanej puli SQL (dawniej SQL DW) w usłudze Azure Synapse Analytics

W tym artykule zamieszczono zalecenia dotyczące definiowania typów danych tabeli w dedykowanej puli SQL.

Obsługiwane typy danych

Dedykowana Pula SQL (wcześniej SQL DW) obsługuje najczęściej używane typy danych. Aby zapoznać się z listą obsługiwanych typów danych, zobacz typy danych w instrukcji CREATE TABLE.

Minimalizuj długość wiersza

Minimalizacja rozmiaru typów danych skraca długość wiersza, co prowadzi do lepszej wydajności zapytań. Użyj najmniejszego typu danych, który działa dla danych.

  • Należy unikać definiowania kolumn znaków o dużej długości domyślnej. Na przykład jeśli najdłuższa wartość to 25 znaków, zdefiniuj kolumnę jako VARCHAR (25).
  • Należy unikać używania nvarchar , gdy wymagany jest tylko varchar.
  • Jeśli to możliwe, należy użyć parametru NVARCHAR (4000) lub VARCHAR (8000) zamiast typu NVARCHAR (MAX) lub VARCHAR (MAX).

Jeśli używasz wielobazowych tabel zewnętrznych do ładowania tabel, określona długość wiersza tabeli nie może przekroczyć 1 MB. Gdy wiersz z danymi o zmiennej długości przekracza 1 MB, można załadować wiersz za pomocą narzędzia BCP, ale nie z bazą danych.

Zidentyfikuj nieobsługiwane typy danych

W przypadku migrowania bazy danych z innej bazy danych SQL mogą znajdować się typy danych, które nie są obsługiwane w dedykowanej puli SQL. Użyj następującego zapytania, aby odnaleźć nieobsługiwane typy danych w istniejącym schemacie SQL:

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;

Obejścia dla nieobsługiwanych typów danych

Na poniższej liście przedstawiono typy danych, które nie obsługują dedykowanej puli SQL (dawniej SQL DW) i dają użyteczne alternatywy dla nieobsługiwanych typów danych.

Nieobsługiwany typ danych Obejście
geometrii varbinary
geograficzne varbinary
hierarchyid nvarchar(4000)
Image varbinary
Opis varchar
ntext nvarchar
sql_variant Podziel kolumnę na kilka kolumn o jednoznacznie określonym typie.
table Konwertuj na tabele tymczasowe.
znacznik czasu Przepracuj kod, aby użyć datetime2 i funkcji CURRENT_TIMESTAMP . Tylko stałe są obsługiwane jako wartości domyślne, więc current_timestamp nie można zdefiniować jako ograniczenia domyślnego. Jeśli konieczne jest przeprowadzenie migracji wartości wersji wiersza z kolumny z określonym typem sygnatury czasowej, użyj wartości binarnych(8) lub varbinary(8) dla NIEprawidłowych lub zerowych wersji wierszy.
dokument varchar
typ zdefiniowany przez użytkownika Przekonwertuj z powrotem na natywny typ danych, gdy jest to możliwe.
wartości domyślne Wartości domyślne obsługują tylko literały i stałe.

Następne kroki

Aby uzyskać więcej informacji na temat tworzenia tabel, zobacz Omówienie tabeli.