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 di 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.

Meminimalkan panjang baris

Meminimalkan ukuran jenis data memperpendek panjang baris, yang mengarah ke performa kueri yang lebih baik. Gunakan jenis data terkecil yang berfungsi untuk data Anda.

  • Hindari menentukan kolom karakter dengan panjang default yang besar. Misalnya, jika nilai terpanjang adalah 25 karakter, maka tentukan kolom Anda sebagai VARCHAR(25).
  • Hindari menggunakan NVARCHAR saat Anda hanya memerlukan VARCHAR.
  • Jika memungkinkan, gunakan NVARCHAR(4000) atau VARCHAR(8000) alih-alih 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 tipe data yang tidak didukung dalam 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.

Tipe data yang tidak didukung Penanganan masalah
geometry varbinary
geografi varbinary
hierarchyid nvarchar(4000)
gambar varbinary
text varchar
ntext nvarchar
sql_variant Pisahkan kolom menjadi beberapa kolom yang ditik dengan kuat.
tabel Konversi ke tabel sementara.
timestamp Ubah kode untuk menggunakan datetime2 dan fungsi CURRENT_TIMESTAMP. Hanya konstanta yang didukung sebagai default, sehingga current_timestamp tidak dapat didefinisikan sebagai batasan default. Jika Anda perlu memigrasikan nilai versi baris dari kolom bertipe timestamp, gunakan BINARY(8) atau VARBINARY(8) untuk nilai versi baris NOT NULL atau NULL.
xml varchar
jenis yang ditentukan pengguna Konversi kembali ke jenis data asli jika memungkinkan.
nilai default Nilai default hanya mendukung literal dan konstanta.

Langkah berikutnya

Untuk informasi selengkapnya tentang mengembangkan tabel, lihat Gambaran Umum Tabel.