مؤشرات الخطأ
اطّلع على السيناريو التالي:
-
لديك جدول يحتوي علي فهارس كولومنستوري المرتبة عليه ، ويحتوي الجدول علي عدد كبير من الاعمده (في المئات).
-
تعتبر البيانات (نوع البيانات) لهذه الاعمده بيانات كومبريسيبليه بشكل كبير مثل varchar.
-
تقوم بتشغيل عبارة SELECT مقابل هذا الجدول لتحديد مجموعه فرعيه كبيره أو كافة الاعمده من هذا الجدول.
-
تحتوي جمله select علي بند where يحدد إخراجها إلى صفوف قليله جدا (يكون الاستعلام اختياريا بشكل كبير).
في هذا السيناريو ، قد تواجه أيا من الاعراض التالية أو كلها:
-
قد تواجه عمليه التحميل المتزامنة (الاستعلامات الأخرى التي يتم تنفيذها في نفس الوقت علي الخادم باعتباره هذا الاستعلام) ، انخفاض في الأداء وفقدان الانتاجيه.
-
قد تري استخدام CPU المرتفع بشكل متقطع.
-
إذا قمت بالاستعلام sys.dm_os_ring_buffers الإدخالات وعرضها ، فيمكنك البحث عن الرسائل التي تم تسجيلها بشكل متقطع " شيدوليرمونيتور
-
قد تتلقي خطا مجدول غير ييلدينج في سجل الأخطاء وقد يتم إنشاء ملف تفريغ ذاكره الاعراض.
الحل
تم تصحيح المشكلة أولا في التحديث التراكمي التالي ل SQL Server:
يحتوي كل تحديث تراكمي جديد ل SQL Server علي كل الإصلاحات العاجلة وكل تصحيحات الأمان التي تم تضمينها في التحديث التراكمي السابق. من المستحسن تنزيل أحدث التحديثات التراكمية ل SQL Server وتثبيته:
مزيد من المعلومات
تفاصيل التصحيحالعمال الذين يعالجون مقاطع الاعمده (أونكومبريسينجهم وفحص الصفوف المؤهلة) التي يتم استخدامها لاستخدام CPU الخاصة بالعاملين الآخرين/الاستعلامات المتزامنة لاكسيكوتيونس عند وجود عدد معين من الصفوف. عندما تكون عبارة where محدده بشكل كبير لإنتاج عدد قليل من الصفوف ، فان العمال الذين يعالجون هذا الاستعلام يعالجون غير مضغوطه وعددا كبيرا من المقاطع (لأنه عدد قليل جدا من الصفوف التي تمت معالجتها) قبل ان يتم منحهم الحد الأقصى لحمل العمل. هذا ما ادي إلى استخدام CPU الغير منتظم وانخفاض مستوي الأداء لحمل العمل المتزامن. يقوم الخيار "إصلاح" بتحسين خوارزميه مشاركه CPU وتحسينها لاستعلامات كولومنستوري هذه.
المراجع
تعرف علي المصطلحات التي تستخدمها Microsoft لوصف تحديثات البرامج.