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

ينطبق على
SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1 SQL Server 2017 on Windows (all editions)

الأعراض

بشكل افتراضي، يتم تشغيل نقاط التحقق غير المباشرة لقاعدة بيانات tempdb في Microsoft SQL Server 2016 و2017. في ظل ظروف حمل العمل الثقيلة، قد يحدث خطأ "مجدول غير منتج" ويعرض sys.dm_os_spinlock_stats DMV تنازعا مرتفعا حول spinlock لنوع DP_LIST spinlock.

الدقة

يتم تضمين هذا الإصلاح في التحديثات وحزمة الخدمة التالية:

معلومات حزمة الخدمة SQL Server 2016

حزمة الخدمة 2 ل SQL Server 2016

حول SQL Server الإصدارات

يحتوي كل إصدار جديد SQL Server على جميع الإصلاحات العاجلة وإصلاحات الأمان التي كانت موجودة في الإصدار السابق. نوصي بتثبيت آخر التحديثات التراكمية SQL Server:

آخر تحديث تراكمي SQL Server 2017

أحدث إصدار SQL Server 2016

حول حزم الخدمة SQL Server:

حزم الخدمة تراكمية. تحتوي كل حزمة خدمة جديدة على جميع الإصلاحات الموجودة في حزم الخدمة السابقة، بالإضافة إلى أي إصلاحات جديدة. توصيتنا هي تطبيق أحدث حزمة خدمة وآخر تحديث تراكمي لحزمة الخدمة هذه. ليس عليك تثبيت حزمة خدمة سابقة قبل تثبيت أحدث حزمة خدمة. استخدم الجدول 1 في المقالة التالية للعثور على مزيد من المعلومات حول أحدث حزمة خدمة وآخر تحديث تراكمي.

كيفية تحديد إصدار 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 على أن هذه مشكلة في منتجات Microsoft المُدرجة في القسم "ينطبق على".

المراجع

تعرّف على المصطلحات التي تستخدمها Microsoft لوصف تحديثات البرامج. راجع المقالات التالية لمزيد من المعلومات: