الأعراض
عند استخدام مثيل جديد من Microsoft SQL Server 2016 (أو 2017) أو مثيل SQL Server 2016 (أو 2017) تمت ترقيته من إصدار سابق من SQL Server، فإنك تواجه مشاكل في الأداء بسبب ارتفاع استخدام CPU. بالإضافة إلى ذلك، إذا استعلمت عن الجدول sys.dm_os_spinlock_stats ، فستلاحظ قيمة عالية في عمود الزيادة ونقصانصفوف SECURITY_CACHE (ذاكرة التخزين المؤقت للأمان) CMED_HASH_SET (ذاكرة التخزين المؤقت لبيانات التعريف) (مقارنة بالصفوف الأخرى في الجدول). على سبيل المثال، لاحظت القيم التالية.
السبب
تحدث هذه المشكلة بسبب منافسة تأمين زيادة ونقصان عالية في نظام متزامن للغاية. في أنظمة التشغيل هذه، تتنافس مؤشرات ترابط وحدة المعالجة المركزية المتعددة على الموارد وتدور للحصول على فاصل زمني موسع أثناء تشغيلها في حلقة دورية لتحديد ما إذا كان المورد متوفرا بدلا من أن ينتج على الفور. عندما تستمر مؤشرات ترابط وحدة المعالجة المركزية المتعددة في الدوران (في تكرار حلقي ) لمورد بدلا من إنتاجه، يتسبب ذلك في ارتفاع استخدام وحدة المعالجة المركزية ومشكلات الأداء.
الحل
تم تصحيح هذه المشكلة في التحديثات التراكمية التالية SQL Server:
ملاحظة يتم إصدار Acrobat Reader من قِبل شركة Adobe Systems Inc.. بعد تطبيق SQL Server 2016 Cumulative Update 2 (CU2)، يتم تغيير أسماء SECURITY_CACHE CMED_HASH_SET إلى LOCK_RW_SECURITY_CACHELOCK_RW_CMED_HASH_SET، على التوالي. بعد تطبيق CU2، تظهر القيم كما يلي.
يحتوي كل تحديث تراكمي جديد SQL Server على كافة الإصلاحات العاجلة وجميع إصلاحات الأمان التي تم تضمينها مع التحديث التراكمي السابق. اطلع على آخر التحديثات التراكمية SQL Server:
الحالة
أقرت Microsoft أن هذه المشكلة تحدث في منتجات Microsoft المسردة في المقطع "تنطبق على".
المراجع
تعرف على المصطلحات التي تستخدمها Microsoft لوصف تحديثات البرامج.
يناقش الكتاب الأبيض تشخيص وحل Spinlock Contention على SQL Server المشكلات وحلولها المتعلقة بمنافسة spinlock بالتفصيل.