Datové typy tabulek pro vyhrazený fond SQL (dřív SQL DW) ve službě Azure synapse Analytics

Tento článek obsahuje doporučení pro definování typů dat tabulky ve vyhrazeném fondu SQL.

Podporované datové typy

Vyhrazený fond SQL (dříve SQL DW) podporuje nejčastěji používané datové typy. Seznam podporovaných datových typů najdete v tématu datové typy v příkazu CREATE TABLE.

Minimalizovat délku řádku

Minimalizace velikosti datových typů zkrátí délku řádku, což vede k lepšímu výkonu dotazů. Použijte nejmenší datový typ, který je vhodný pro vaše data.

  • Vyhněte se definování sloupců znaků s velkou výchozí délkou. Například pokud má nejdelší hodnota 25 znaků, pak sloupec definujte jako VARCHAR (25).
  • Nepoužívejte nvarchar , pokud potřebujete pouze varchar.
  • Pokud je to možné, použijte NVARCHAR (4000) nebo VARCHAR (8000) místo typu NVARCHAR (MAX) nebo VARCHAR (MAX).

Pokud k načtení tabulek používáte základní externí tabulky, může definovaná délka řádku tabulky překročit 1 MB. Pokud řádek s daty s proměnlivou délkou přesáhne 1 MB, můžete řádek načíst pomocí BCP, ale ne u základny.

Identifikace nepodporovaných datových typů

Pokud migrujete databázi z jiné databáze SQL, můžete najít datové typy, které nejsou podporovány ve vyhrazeném fondu SQL. K vyhledání nepodporovaných datových typů ve stávajícím schématu SQL použijte následující dotaz:

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;

Alternativní řešení pro nepodporované datové typy

Následující seznam obsahuje datové typy, které vyhrazený fond SQL (dřív SQL DW) nepodporuje, a poskytuje užitečné alternativy pro nepodporované datové typy.

Nepodporovaný datový typ Alternativní řešení
geometrie varbinary
geografické varbinary
hierarchyid nvarchar(4000)
obrazu varbinary
text varchar
ntext nvarchar
sql_variant Rozdělí sloupec do několika sloupců se silným typem.
table Převod na dočasné tabulky.
časové razítko Reworking Code pro použití datetime2 a funkce CURRENT_TIMESTAMP . Jako výchozí se podporují jenom konstanty, takže current_timestamp nejde definovat jako výchozí omezení. Pokud potřebujete migrovat hodnoty verze řádku z typu sloupce časového razítka, použijte binární(8) nebo varbinary(8) pro hodnoty nenulového řádku nebo hodnoty null.
XML varchar
uživatelem definovaný typ Pokud je to možné, převeďte zpátky na nativní datový typ.
výchozí hodnoty Výchozí hodnoty podporují pouze literály a konstanty.

Další kroky

Další informace o vývoji tabulek najdete v tématu Přehled tabulek.