أنواع بيانات الجداول لتجمع SQL المخصص (SQL DW سابقا) في Azure Synapse Analytics

تتضمن هذه المقالة توصيات لتحديد أنواع بيانات الجدول في تجمع SQL مخصص.

أنواع البيانات المدعومة

يدعم تجمع SQL المخصص (SQL DW سابقا) أنواع البيانات الأكثر استخداما. للحصول على قائمة بأنواع البيانات المدعومة، راجع أنواع البيانات في عبارة إنشاء جدول.

تصغير طول الصف

تقليل حجم أنواع البيانات إلى الحد الأدنى يُقصر طول الصف، ما يؤدي إلى تحسين أداء الاستعلام. استخدم أصغر نوع بيانات يكون جيداً مع بياناتك.

  • تجنب تحديد طول افتراضي كبير لأعمدة الأحرف. على سبيل المثال، إذا كانت أطول قيمة هي 25 حرفا، فحدد عمودك على أنه VARCHAR(25).
  • تجنب استخدام NVARCHAR عندما تحتاج فقط إلى VARCHAR.
  • وعند الإمكان، استخدم NVARCHAR(4000) أو VARCHAR(8000) بدلاً من NVARCHAR(MAX) أو VARCHAR(MAX).

إذا كنت تستخدم جداول PolyBase الخارجية لتحميل جداولك، فلا يمكن أن يتجاوز الطول المحدد لصف الجدول 1 ميغابايت. عندما يتجاوز صف يحتوي على بيانات متغيرة الطول 1 ميغابايت، يمكنك تحميل الصف باستخدام BCP، ولكن ليس باستخدام PolyBase.

تحديد أنواع البيانات غير المعتمدة

إذا كنت تقوم بترحيل قاعدة البيانات من قاعدة بيانات SQL أخرى، فقد تجد أنواع بيانات غير مدعومة في تجمع SQL مخصص. استخدم الاستعلام التالي لاكتشاف أنواع البيانات غير المعتمدة في مخطط SQL الحالي:

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;

الحلول البديلة لأنواع البيانات غير المدعومة

تعرض القائمة التالية أنواع البيانات التي لا يدعمها تجمع SQL المخصص (SQL DW سابقا) وتوفر بدائل مفيدة لأنواع البيانات غير المدعومة.

نوع البيانات غير المدعوم الحل البديل
هندسة varbinary
جغرافيا varbinary
معرّف التسلسل الهرمي نفارشار(4000)
صورة varbinary
نص varchar
ntext nvarchar
sql_variant قم بتقسيم العمود إلى عدة أعمدة محددة النوع بدقة.
جدول قم بالتحويل إلى جداول مؤقتة.
طابع زمني أعد صياغة التعليمات البرمجية لاستخدام datetime2 والدالة CURRENT_TIMESTAMP . يتم دعم القيود فقط كافتراضيات، ولذلك لا يمكن تحديد current_timestamp باعتباره قيداً افتراضياً. إذا كنت بحاجة إلى ترحيل قيم إصدار الصف من عمود مكتوب بطابع زمني، فاستخدم BINARY(8) أو VARBINARY(8) لقيم إصدار الصف غير NULL أو NULL.
xml varchar
النوع المعرف من قبل المستخدم قم بالتحويل مرة أخرى إلى نوع البيانات الأصلي عندما يكون ذلك ممكناً.
القيم الافتراضية تدعم القيم الافتراضية القيم الحرفية والقيود فقط.

الخطوات التالية

لمزيد من المعلومات حول تطوير الجداول، راجع نظرة عامة على الجدول.