سؤال

كيف يؤثر الترتيب على SQL Server من حيث التخزين وكيف يؤثر ذلك على أنواع البيانات Unicode وغير Unicode؟

  • هل يؤثر الترتيب على تخزين Unicode؟أو مجرد التحكم في قواعد الفرز داخل قاعدة البيانات؟

  • عندما أستخدم أنواع البيانات التي لا تحتوي على Unicode، ما هي القيود المرتبطة بالترتيب؟

  • في حالة تطبيق القيود، ماذا يحدث عندما أحاول تخزين حرف غير موجود في ترتيب قاعدة البيانات لنوع بيانات غير Unicode؟

ما أفهمه هو أن نوع بيانات Unicode يمكنه دائمًا تخزين المجموعة الكاملة من بيانات Unicode بينما تعتمد قدرات تخزين أنواع البيانات غير Unicode على صفحة الرموز (التي يتم تحديدها بواسطة الترتيب) ويمكن أن تمثل فقط عددًا من الأحرف الشائعة في ذلك التجميع.

من الواضح أن كل حرف في نوع بيانات Unicode سيشغل على الأقل 2 بايت بينما تشغل أنواع البيانات غير Unicode 1 بايت لكل حرف (أو هل يختلف هذا مع الترتيب أيضًا؟)

ضعني مباشرة هنا، كيف يعمل هذا بالضبط؟

هل كانت مفيدة؟

المحلول

يقوم SQL Server بتخزين بيانات Unicode (NTEXT، NVARCHAR) في UCS2، مما يؤدي دائمًا إلى 2 بايت لكل حرف.

يؤثر الترتيب فقط على الفرز (والغلاف).

في أنواع البيانات غير Unicode (TEXT، VARCHAR)، يتم استخدام بايت واحد فقط لكل حرف، ويمكن تخزين أحرف صفحة الرموز الخاصة بالترتيب فقط (تمامًا كما ذكرت).انظر الى هذا مقالة MSDN حول عمليات الترتيب

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top