الأعراض
بشكل افتراضي، يتم تشغيل نقاط التحقق غير المباشرة لقاعدة بيانات tempdb في Microsoft SQL Server 2016 و2017. في ظل ظروف حمل العمل الثقيلة، قد يحدث خطأ "مجدول غير مثمر" ويعرض sys.dm_os_spinlock_stats DMV منافسة زيادة ونقصان عالية لنوع DP_LIST spinlock.
الحالة
أقرت Microsoft أن هذه المشكلة تحدث في منتجات Microsoft المسردة في المقطع "تنطبق على".
الحل
تم تصحيح هذه المشكلة في التحديثات التراكمية التالية SQL Server:
حول التحديثات التراكمية SQL Server:
يحتوي كل تحديث تراكمي جديد SQL Server على كافة الإصلاحات العاجلة وجميع إصلاحات الأمان التي تم تضمينها مع التحديث التراكمي السابق. اطلع على آخر التحديثات التراكمية SQL Server:
الحل البديل
لحل هذه المشكلة، قم بإيقاف تشغيل نقاط التحقق غير المباشرة على قاعدة بيانات tempdb باستخدام إحدى عبارات لغة تعريف البيانات (DDL) التالية.
يجب أن يتم ذلك على النحو التالي:
-
في قاعدة بيانات modeldb (يؤدي ذلك أيضا إلى تغيير القيمة الافتراضية لقواعد البيانات الجديدة)، قم بتشغيل العبارة التالية:
ALTER DATABASE [model] SET TARGET_RECOVERY_TIME = 0 MINUTES -
أو مباشرة على قاعدة بيانات tempdb في كل مرة يبدأ فيها تشغيل المثيل باستخدام عامل SQL Server باستخدام العبارة التالية:
ALTER DATABASE [tempdb] SET TARGET_RECOVERY_TIME = 0 MINUTES -
أو، إصدار نقاط التحقق اليدوية بشكل دوري مقابل قاعدة بيانات tempdb باستخدام العبارة التالية:
use tempdb
go checkpoint
go
بالإضافة إلى ذلك، يمكن استخدام TF 3468 لتعطيل نقطة التحقق غير المباشرة على tempdb.
المراجع
تعرف على المصطلحات التي تستخدمها Microsoft لوصف تحديثات البرامج. راجع المقالات التالية للحصول على مزيد من المعلومات: