Jenis data tabel untuk kumpulan SQL khusus (sebelumnya SQL DW) di Azure Synapse Analytics
Disertakan dalam artikel ini adalah rekomendasi untuk menentukan jenis data tabel dalam kumpulan SQL khusus.
Jenis data yang didukung
Kumpulan SQL khusus (sebelumnya SQL DW) mendukung jenis data yang paling umum digunakan. Untuk daftar jenis data yang didukung, lihat jenis data dalam pernyataan CREATE TABLE.
Mengecilkan panjang baris
Mengecilkan ukuran dari jenis data memperpendek panjang baris, yang mengarah ke performa kueri yang lebih baik. Gunakan jenis data terkecil yang berfungsi untuk data Anda.
- Hindari mendefinisikan kolom karakter dengan panjang default yang besar. Misalnya, jika nilai terpanjang adalah 25 karakter, tentukan kolom Anda sebagai VARCHAR(25).
- Hindari menggunakan NVARCHAR saat Anda hanya memerlukan VARCHAR.
- Jika memungkinkan, gunakan NVARCHAR(4000) atau VARCHAR(8000) sebagai ganti dari NVARCHAR(MAX) atau VARCHAR(MAX).
Jika Anda menggunakan tabel eksternal PolyBase untuk memuat tabel Anda, panjang baris tabel yang ditentukan tidak boleh melebihi 1 MB. Saat baris dengan data panjang variabel melebihi 1 MB, Anda dapat memuat baris dengan BCP, tetapi tidak dengan PolyBase.
Mengidentifikasi jenis data yang tidak didukung
Jika Anda memigrasikan database dari database SQL lain, Anda mungkin menemukan jenis data yang tidak didukung di kumpulan SQL khusus. Gunakan kueri berikut untuk menemukan jenis data yang tidak didukung di skema SQL yang sudah ada:
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;
Solusi untuk tipe data yang tidak didukung
Daftar berikut menunjukkan jenis data yang tidak didukung kumpulan SQL khusus (sebelumnya SQL DW) dan memberikan alternatif yang berguna untuk jenis data yang tidak didukung.
Jenis data tidak didukung | Solusi Sementara |
---|---|
geometri | varbinary |
geografi | varbinary |
hierarchyid | nvarchar(4000) |
gambar | varbinary |
teks | varchar |
ntext | nvarchar |
aql_variant | Pisahkan kolom menjadi beberapa kolom yang diketik dengan kuat. |
tabel | Konversikan ke tabel sementara. |
tanda waktu | Kerjakan ulang kode untuk menggunakan datetime2 dan fungsi CURRENT_TIMESTAMP. Hanya konstanta yang didukung sebagai default, jadi current_timestamp tidak dapat didefinisikan sebagai batasan default. Jika Anda perlu memigrasikan nilai versi baris dari kolom yang diketik dengan tanda waktu, gunakan BINARY(8) atau VARBINARY(8) untuk nilai versi baris NOT NULL atau NULL. |
xml | varchar |
jenis yang ditetapkan pengguna | Konversikan kembali ke jenis data asli jika memungkinkan. |
nilai default | Nilai default hanya mendukung harfiah dan konstanta. |
Langkah berikutnya
Untuk informasi selengkapnya tentang mengembangkan tabel, lihat Gambaran Umum Tabel.