إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
فـي هذه المقالة، سوف تجد توصيات لتعريف أنواع بيانات الجدول في Synapse SQL Dedicated Pool.
أنواع البيانات
يدعم Synapse SQL Dedicated Pool أنواع البيانات الأكثر استخدامًا. للحصول على قائمة بأنواع البيانات المعتمدة، راجع أنواع البيانات في عبارة CREATE TABLE. بالنسبة إلى Synapse SQL Serverless، راجع المقالة Query storage files with serverless SQL pool in Azure Synapse Analytics and How to use OPENROWSET using serverless SQL pool in Azure Synapse Analytics
تصغير طـول الصف
تقليل حجم أنواع البيانات إلى الحد الأدنى يُقصر طول الصف، ما يؤدي إلى تحسين أداء الاستعلام. استخدم أصغر نوع بيانات يكون جيداً مع بياناتك.
- تجنب تحديد طول افتراضي كبير لأعمدة الأحرف. على سبيل المثال، إذا كانت أطول قيمة هي 25 حرفًا، فحدد العمود الخاص بك على أنه VARCHAR (25).
- تجنب استخدام NVARCHAR عندما تحتاج إلى VARCHAR فقط.
- وعند الإمكان، استخدم NVARCHAR(4000) أو VARCHAR(8000) بدلاً من NVARCHAR(MAX) أو VARCHAR(MAX).
- تجنب استِخدام الأعداد العائمة والفواصل العشرية ذات المقياس 0 (صفر). يجب أن تكون هذه TINYINT أو SMALLINT أو INT أو BIGINT.
إشعار
إذا كنت تستخدم جداول PolyBase الخارجية لتحميل جداول Synapse SQL، فلا يمكن أن يتجاوز الطول المحدد لصف الجدول 1 ميغابايت. عندما يتجاوز الصف الذي يحتوي على بيانات متغيرة الطول 1 ميغابايت، يمكنك تحميل الصف باستخدام BCP، ولكن ليس باستخدام PolyBase.
تحديد أنواع البيانات غير المعتمدة
إذا كنت تقوم بترحيل قاعدة البيانات الخاصة بك من قاعدة بيانات SQL أخرى، فقد تواجه أنواع بيانات غير مدعومة في Synapse 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')
OR y.[is_user_defined] = 1;
الحلول البديلة لأنواع البيانات غير المدعومة
تعرض القائمة التالية أنواع البيانات التي لا يدعمها Synapse SQL وتعطي بدائل يمكنك استخدامها بدلا من أنواع البيانات غير المدعومة.
| نوع البيانات غير المدعوم | الطرق البديلة |
|---|---|
| هندسة | varbinary |
| جغرافيا | varbinary |
| معرف هرمي | nvarchar(4000) |
| صورة | varbinary |
| text | varchar |
| ntext | nvarchar |
| sql_variant | قم بتقسيم العمود إلى عدة أعمدة محددة النوع بدقة. |
| جدول | التحويل إلى جداول مؤقتة أو مراعاة تخزين البيانات إلى التخزين باستخدام CETAS. |
| الطابع الزمني | أعد عمل التعليمة البرمجية لاستخدام datetime2 والدالة CURRENT_TIMESTAMP. يتم اعتماد الثوابت فقط كإعدادات افتراضية، لذلك لا يمكن تعريف current_timestamp كقيد افتراضي. إذا كنت بحاجة إلى ترحيل قيم إصدار الصف من عمود طابع زمني محدد النوع، فاستخدم BINARY(8) أو VARBINARY(8) لقيم إصدار الصف NOT NULL أو NULL. |
| xml | varchar |
| نوع معرف من قبل المستخدم | قم بالتحويل مرة أخرى إلى نوع البيانات الأصلي عندما يكون ذلك ممكناً. |
| القيم الافتراضية | تدعم القيم الافتراضية القيم الحرفية والقيود فقط. |
المحتوى ذو الصلة
لمزيد من المعلومات حول تطوير الجداول، راجع نظرة عامة على التطوير.