KB4497928 - FIX: تتسبب نقاط التحقق غير المباشرة على قاعدة بيانات tempdb في حدوث خطأ "مجدول غير منتج" في SQL Server 2016 و2017

ينطبق على
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

الأعراض

بشكل افتراضي، يتم تشغيل نقاط التحقق غير المباشرة لقاعدة بيانات tempdb في Microsoft SQL Server 2016 و2017. في ظل ظروف حمل العمل الثقيلة، قد يحدث خطأ "مجدول غير منتج" ويعرض sys.dm_os_spinlock_stats DMV تنازعا مرتفعا حول spinlock لنوع 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 لوصف تحديثات البرامج. راجع المقالات التالية لمزيد من المعلومات: