Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Ebben a cikkben javaslatokat talál a táblák adattípusainak definiálásához a Dedikált Synapse SQL-készletben.
Adattípusok
A Synapse dedikált SQL-készlet támogatja a leggyakrabban használt adattípusokat. A támogatott adattípusok listáját a CREATE TABLE utasítás adattípusai között találja. A Kiszolgáló nélküli Synapse SQL esetében tekintse meg a kiszolgáló nélküli SQL-készlettel rendelkező tárolófájlok lekérdezését az Azure Synapse Analyticsben , valamint az OPENROWSET kiszolgáló nélküli SQL-készlettel való használatát az Azure Synapse Analyticsben
Sorhossz kis méretűre állítása
Az adattípusok méretének minimalizálása lerövidíti a sor hosszát, ami jobb lekérdezési teljesítményt eredményez. Válassza ki az adatokhoz legjobban illeszkedő legkisebb adattípust.
- Kerülje a nagy alapértelmezett hosszúságú karakteroszlopok definiálását. Ha például a leghosszabb érték 25 karakter, akkor adja meg az oszlopot VARCHAR(25) értékként.
- Kerülje az NVARCHAR használatát, ha csak VARCHAR-ra van szüksége.
- Ha lehetséges, használjon NVARCHAR(4000) vagy VARCHAR(8000) helyett NVARCHAR(MAX) vagy VARCHAR(MAX).
- Kerülje a lebegőpontos számok és tizedespontok használatát 0 (nulla) pontossággal. Ezek lehetnek TINYINT, SMALLINT, INT vagy BIGINT.
Megjegyzés
Ha külső PolyBase-táblákat használ a Synapse SQL-táblák betöltéséhez, a táblasor megadott hossza nem haladhatja meg az 1 MB-ot. Ha egy változó hosszúságú adattal rendelkező sor meghaladja az 1 MB-ot, a sort BCP-vel töltheti be, a PolyBase használatával azonban nem.
Nem támogatott adattípusok azonosítása
Ha egy másik SQL-adatbázisból migrálja az adatbázist, előfordulhat, hogy a Synapse SQL nem támogatja az adattípusokat. Ezzel a lekérdezéssel felderítheti a meglévő SQL-sémában nem támogatott adattípusokat.
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')
OR y.[is_user_defined] = 1;
Megkerülő megoldások nem támogatott adattípusokhoz
Az alábbi lista azokat az adattípusokat mutatja be, amelyeket a Synapse SQL nem támogat, és a nem támogatott adattípusok helyett alternatív megoldásokat kínál.
| Nem támogatott adattípus | Áthidaló megoldás |
|---|---|
| geometria | varbinary |
| földrajz | varbinary |
| hierarchiaazonosító | nvarchar(4000) |
| kép | varbinary |
| text | varchar |
| ntext | nvarchar |
| sql_variant | Oszlop felosztása több erősen típusos oszlopra. |
| asztal | Alakítsa át ideiglenes táblákká, vagy fontolja meg az adatok tárolóba való tárolását a CETAS használatával. |
| Időbélyeg | A kód átdolgozása a datetime2 és a CURRENT_TIMESTAMP függvény használatára. Alapértelmezésként csak az állandók támogatottak, ezért a current_timestamp nem definiálhatók alapértelmezett kényszerként. Ha sorverzió-értékeket kell migrálnia egy időbélyeg típusú oszlopból, használja a BINARY(8) vagy VARBINARY(8) típust a NOT NULL vagy NULL sor verzióértékekhez. |
| xml | varchar |
| felhasználó által definiált típus | Ha lehetséges, konvertálja vissza a natív adattípust. |
| alapértelmezett értékek | Az alapértelmezett értékek csak a literálokat és az állandókat támogatják. |
Kapcsolódó tartalom
A táblák fejlesztésével kapcsolatos további információkért tekintse meg a fejlesztés áttekintését.