أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

مقارنة عمليات ترتيب SQL إلى الترتيب Windows

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية322112
الموجز
في Microsoft SQL Server 2000 وفي Microsoft SQL Server 2005 "ترتيب" تحديد كيفية مقارنة سلاسل وفرزها وحرف ما يتم استخدام مجموعة بيانات Unicode. يدعم SQL Server 2000 نوعين من عمليات الترتيب:
  • عمليات ترتيب SQL
  • عمليات الترتيب Windows
للحصول على وصف لكل نوع من ترتيب نسخ "و" جيدة نظرة عامة حول كيفية تحديد الترتيب الذي لاستخدام راجع الموضوع "تحديد عمليات الترتيب" في SQL Server 2000 المباشرة أو راجع الموضوع "ترتيب أنواع" في SQL Server 2005 المباشرة.

يناقش هذا المقال الاعتبارات الإضافية التي قد تؤثر على القرار حول ما إذا كنت تريد اختيار ترتيب نسخ Windows أو ترتيب نسخ SQL عند تثبيت SQL Server 2000 أو SQL Server 2005.
معلومات أخرى

دلالات ترتيب النسخ

للحصول على ترتيب Windows ، يتم تنفيذ مقارنة بيانات Unicode باستخدام خوارزمية نفس بيانات Unicode. كل Unicode والفرز Unicode تتوافق مع قواعد مقارنة السلسلة في إصدار Windows معينة. يوفر هذا التناسق عبر أنواع البيانات في SQL Server. كما تمكّن المطورين الذين يستخدمون الدالة Win32 API CompareString للفرز السلاسل في تطبيق الخاص بهم باستخدام نفس القواعد يستخدم SQL Server.

في ترتيب "SQL" ، يحدد SQL Server دلالات المقارنة مختلفة لبيانات Unicode. SQL Server إسناد دلالات هذه المقارنة SQL "ترتيب الفرز". للحصول مخطط ترتيبات الفرز إلى عمليات ترتيب SQL راجع الموضوع "اسم ترتيب نسخ SQL" في "كتب SQL Server الفورية".

قواعد ترتيب نسخ SQL فرز البيانات Unicode غير متوافقة مع أي روتين الفرز الذي تم توفيره بواسطة Microsoft Windows نظام التشغيل; ومع ذلك، يتم فرز بيانات Unicode متوافق مع إصدار Windows الفرز قواعد معينة. لأن قواعد المقارنة Unicode بيانات Unicode مختلفة, عند استخدام ترتيب نسخ SQL قد تشاهد نتائج مختلفة عن المقارنات الأحرف نفسها استناداً إلى نوع البيانات الأساسي. على سبيل المثال، إذا كنت تستخدم SQL الترتيب "SQL_Latin1_General_CP1_CI_AS" ، سلسلة Unicode ' - c' أقل من السلسلة 'ab' لأن الواصلة ("-") يتم فرز كحرف منفصلة يسبق "b". ومع ذلك، إذا تحويل هذه السلاسل إلى Unicode وتنفيذ المقارنة نفس سلسلة Unicode N'a c 'يعتبر بحيث يكون أكبر من N'ab' لأن الفرز Unicode قواعد استخدام "كلمة فرز" التي يتجاهلها الواصلة.

الأداء مقارنة السلسلة

قواعد الفرز Unicode معقدة أكثر من قواعد ترتيب فرز Unicode SQL. عندما يقارن SQL Server بيانات Unicode, يتم تعيين الأحرف وزن معدّلة بشكل حيوي استناداً إلى الإعدادات المحلية الترتيب. البيانات يتم أيضاً تعديل بالمقارنة إعدادات النمط مثل عرض التمييز أو كانا الحساسية. إجراءات الفرز Unicode يعتمد سلوك فرز ذكي أكثر مثل الفرز الكلمة.

بالإضافة إلى ذلك، لأنه يجب معالجة الإجراءات بيانات Unicode ، تكون مرنة معالجة الفرز و مقارنة عدة آلاف مميزة الأحرف, بدلاً من 255 حرفاً القصوى التي يمكن التعامل معظم ترتيبات الفرز SQL Server. لهذه الأسباب، العمل مقارنة السلسلة الأولية يستخدم Unicode قواعد الفرز عادةً أكثر تكلفة من دورات CPU والوقت من مقارنة سلسلة مشابهة يستخدم ترتيب فرز Unicode SQL.

ماذا يعني هذا عن التركيبات الممكنة البيانات وأنواع الترتيب في SQL Server:
  • إذا تخزين و معالجة البيانات الخاصة بك باستخدام أنواع بيانات Unicode (char أو varchar أو نص) استخدام ترتيب نسخ SQL سيتم تنفيذ مقارنات السلسلة مع ترتيب فرز Unicode SQL.
  • إذا تخزين و معالجة البيانات الخاصة بك باستخدام أنواع بيانات Unicode (char أو varchar أو نص) وكنت تستخدم ترتيب نسخ Windows ، يتم تنفيذ مقارنات السلسلة مع قواعد الفرز Unicode. قد يتسبب هذا في عمليات معينة غير عادي تعتمد على سلسلة الفرز الأداء وقتاً أطول ثم استخدام CPU أكثر من عملية مماثلة يتم تنفيذ مع SQL الترتيب.
  • إذا كنت تستخدم أنواع بيانات Unicode (nchar ، nvarchar ، ntext) ، يوجد لم اختلاف في سلوك فرز SQL و عمليات Windows. سيستخدم كليهما Unicode الفرز القواعد.
بشكل عام، لن الهامة ودرجة الاختلاف، أداء Windows بين عمليات ترتيب SQL. يظهر الفرق فقط إذا كان يتم حمل عمل CPU منضم بدلاً من يتم تقييد I/O أو بالنقر سرعة الشبكة أو معظم هذه عبء CPU ينتج عن مقدار الحمل معالجة سلسلة أو المقارنات تنفيذ في SQL Server. مثال على أحد التطبيقات phishing حيث الفرق الأداء قد يتم نطقها نظام حيث يمرر أحد تطبيقات قيمة سلسلة طويلة إلى إجراء SQL Server المخزنة. يوزع الإجراء المخزن ثم السلسلة من خلال استخدام دالات معالجة سلسلة SQL للعمليات مثل CHARINDEX أو PATINDEX شاملة. إذا كان حمل العمل واستغلال أحادي الأبعاد هو dominated بواسطة executions هذه السلسلة توزيع الإجراء المخزن قد يمكن ملاحظته الفرق في الأداء بين ترتيب نسخ SQL ترتيب Windows. ومع ذلك، لا يؤدي تصميم معظم التطبيقات إلى موقف حيث الفرق الأداء الهامة.

توصيات

  1. يتم توفير عمليات ترتيب SQL بالتوافق مع الإصدارات السابقة مع الإصدارات السابقة من SQL Server. توفر عمليات Windows مقارنات السلسلة متناسقة كلا Unicode وأن نص Unicode في SQL Server أيضاً متوافقة مع مقارنات السلسلة في نظام التشغيل Windows. كافة هذه الأسباب، عمليات Windows يتم المفضل ما لم تكن هناك مشاكل التوافق مع الإصدارات السابقة أو مشكلات في الأداء الخاصة التي تتطلب SQL على الترتيب.
  2. إذا تم الأخذ بعين الاعتبار ترتيب نسخ SQL يستند فقط إلى مواصفات أداء ترتيب نسخ SQL التحكم، تدرك أن لا يستفيد أداء معظم التطبيقات بشكل ملحوظ من تغيير في الترتيب. تأكد من معزول الاستعلامات التي تعرض فائدة من ترتيب نسخ SQL. بمجرد أن يتم التعرف على استعلامات المتأثرة خذ بعين الاعتبار البدائل التالية إلى تغيير في الترتيب. قد يوفر كل هذه البدائل من فائدة للأداء أكبر من ما سوف ترى إذا قمت بتغيير ترتيب مثيل ترتيب نسخ SQL:
    1. إذا تتبع مقدار الحمل عمليات Windows إلى إجراءات SQL للعمليات التي تقوم بإجراء تحليل أو معالجة سلسلة صريح في حالة استخدام أنواع بيانات Unicode قد تريد تحديد ترتيب نسخ SQL أو ترتيب نسخ Windows ثنائية للعملية التي يتم تنفيذها بشكل متكرر وأنه الأكثر تكلفة. افترض أنك تستخدم الدالة PATINDEX لتحديد ما إذا كان عمود نص في جدول يحتوي على الحرف "x". إذا فرض ترتيب نسخ SQL حتى تلك العملية المقارنة معينة ثم متابعة استخدام Windows الترتيب لبقية التطبيق وقاعدة لم يكن لديك لتغيير ترتيب بالنسبة للنظام بالكامل:
      SELECT PATINDEX ('%x%', MemoFld COLLATE SQL_Latin1_General_Cp1_CI_AS) FROM ...
    2. إذا كان يتم تتبع مقدار الحمل عمليات Windows أكثر mundane الاستعلامات التي لا تستخدم دالات معالجة سلسلة معقدة ، الفهرس محسّن "أو" الاستعلام تصميمات قد توفر تحسينات dwarf تلك تشاهد بواسطة تغيير ترتيب نسخ SQL. استعلام التي يمكن توفيرها بواسطة المحدد بشدة seeks على لن الحساسة تغييرات ثانوية في سلسلة مقارنة تكلفة فهارس المناسبة. وفي المقابل، مقدار صغير من مقدار الحمل لكل مقارنة السلسلة يمكن إضافة بسرعة في استعلام الذي يجب إجراء فحص جدول مقارنة قيمة معينة إلى كل من ملايين صفوف. إذا منع جدول كبير أو بفحص الفهرس من خطة الاستعلام بواسطة تغيير فهرسة أو الاستعلام نفسه تنفيذ الاستعلام أسرع من في حالة تغيير ترتيب نسخ SQL.
ملاحظة هناك نوع ثالث الترتيب تباين SQL الترتيب. يُعرف هذا الترتيب الثالث إلى "ترتيب توافق" أو "obsolescent ترتيب." ترتيب نسخ توافق هو مجموعة من القواعد المقارنة والفرز التي ليس لها اسم ترتيب نسخ المعرف مسبقاً في SQL Server 2000. على سبيل المثال، إذا قمت بإعداد SQL Server 7.0 بالإعداد case-sensitivity غير متناسقة لـ Unicode و لبيانات Unicode ، سوف لهما ترتيب توافق عندما تقوم بترقية هذا المثيل من SQL Server 7.0 إلى SQL Server 2000. في المناقشة في هذه المقالة معلومات حول عمليات ترتيب SQL تنطبق كذلك الترتيب التوافق.

لمزيد من المعلومات حول عمليات الترتيب التوافق انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
270042INF: وصف SQL Server عمليات الترتيب التوافق
perf بطيء

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 322112 - آخر مراجعة: 12/13/2005 21:28:14 - المراجعة: 8.1

Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Workgroup Edition

  • kbmt kbhowto kbinfo KB322112 KbMtar
تعليقات