Sdílet prostřednictvím


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

Součástí tohoto článku jsou doporučení pro definování datových typů tabulek ve vyhrazeném fondu SQL.

Podporované datové typy

Vyhrazený fond SQL (dříve SQL DW) podporuje nejčastěji používané datové typy. Pro seznam podporovaných datových typů se podívejte na datové typy v příkazu CREATE TABLE.

Minimalizace délky řádku

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

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

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

Identifikace nepodporovaných datových typů

Pokud migrujete databázi z jiné databáze SQL, můžete najít datové typy, které nejsou ve vyhrazeném fondu SQL podporované. Pomocí následujícího dotazu zjistěte nepodporované datové typy ve stávajícím schématu 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;

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

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

Nepodporovaný datový typ Dočasné řešení
geometrie varbinary
zeměpis varbinary
hierarchyid nvarchar(4000)
obrázek varbinary
text varchar
ntext nvarchar
sql_variant Rozdělte sloupec na několik silně typovaných sloupců.
tabulka Převeďte na dočasné tabulky.
časové razítko Přepracujte kód tak, aby používal datetime2 a funkci CURRENT_TIMESTAMP . Jako výchozí se podporují jenom konstanty, takže current_timestamp nejde definovat jako výchozí omezení. Pokud potřebujete migrovat řádkové verze ze sloupce typu timestamp, použijte BINARY(8) nebo VARBINARY(8) pro NOT NULL nebo NULL řádkové verze.
xml varchar
uživatelem definovaný typ Pokud je to možné, převeďte zpět 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.