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

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

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

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

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

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

  • تجنب تحديد طول افتراضي كبير لأعمدة الأحرف. على سبيل المثال، إذا كانت أطول قيمة هي 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 المخصصة وتوفر بدائل مفيدة لأنواع البيانات الغير مدعومة.

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

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

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