Azure SYNAPSE Analytics 'te adanmış SQL Havuzu (eski adıyla SQL DW) için tablo veri türleri
Bu makaleye dahil, adanmış SQL havuzunda tablo veri türlerini tanımlamaya yönelik önerilerdir.
Desteklenen veri türleri
Adanmış SQL Havuzu (eski adıyla SQL DW) en yaygın kullanılan veri türlerini destekler. Desteklenen veri türlerinin bir listesi için, bkz. CREATE TABLE deyimindeki veri türleri .
Satır uzunluğunu Küçült
Veri türlerinin boyutunu en aza indirmek, satır uzunluğunun kısaltaştırarak daha iyi sorgu performansına yol açar. Verileriniz için en küçük veri türünü kullanın.
- Büyük bir varsayılan uzunluğa sahip karakter sütunları tanımlamaktan kaçının. Örneğin, en uzun değer 25 karakter ise sütununuzu VARCHAR (25) olarak tanımlayın.
- Yalnızca VARCHAR gerektiren bir nvarchar kullanmaktan kaçının.
- Mümkün olduğunda, NVARCHAR (MAX) veya VARCHAR (MAX) yerine NVARCHAR (4000) veya VARCHAR (8000) kullanın.
Tablolarınızı yüklemek için PolyBase dış tabloları kullanıyorsanız, tablo satırının tanımlanan uzunluğu 1 MB 'ı aşamaz. Değişken uzunluklu verileri olan bir satır 1 MB 'yi aştığında satırı BCP ile yükleyebilirsiniz ancak PolyBase ile birlikte kullanamazsınız.
Desteklenmeyen veri türlerini tanımla
Veritabanınızı başka bir SQL veritabanından geçiriyorsanız, adanmış SQL havuzunda desteklenmeyen veri türleri bulabilirsiniz. Mevcut SQL şemanızda desteklenmeyen veri türlerini saptamak için aşağıdaki sorguyu kullanın:
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;
Desteklenmeyen veri türleri için geçici çözümler
Aşağıdaki listede, adanmış SQL havuzunun (eski adıyla SQL DW) desteklemediği veri türleri ve desteklenmeyen veri türleri için yararlı alternatifler verilmiştir.
| Desteklenmeyen veri türü | Geçici çözüm |
|---|---|
| geometrisi | ikili |
| Coğrafya | ikili |
| hierarchyid | nvarchar(4000) |
| görüntüyle | ikili |
| metin | varchar |
| n | nvarchar |
| sql_variant | Sütunu kesin olarak belirlenmiş birkaç sütuna Böl. |
| table | Geçici tablolara Dönüştür. |
| ilişkin | Datetime2 ve CURRENT_TIMESTAMP işlevini kullanmak için yeniden çalışma kodu. Varsayılan olarak yalnızca sabitler desteklenir, bu nedenle current_timestamp varsayılan kısıtlama olarak tanımlanamaz. Zaman damgası türünde bir sütundan satır sürümü değerlerini geçirmeniz gerekiyorsa, NULL veya NULL satır sürüm değerleri için BINARY(8) veya VARBINARY(8) kullanın. |
| 'sini | varchar |
| Kullanıcı tanımlı tür | Mümkün olduğunda yerel veri türüne geri dönüştür. |
| Varsayılan değerler | Varsayılan değerler yalnızca sabit değerleri ve sabitleri destekler. |
Sonraki adımlar
Tablo geliştirme hakkında daha fazla bilgi için bkz. tabloya genel bakış.