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.