الأعراض
عند حدوث عدد كبير جدا من الإدراج المتزامنة في مستودع التجزئة نفسه، أو تصل ذاكرة التخزين المؤقت لخطة SQL Server المخصصة إلى حد الإدخال الخاص بها وهو 160036، يحدث خلاف شديد على SOS_CACHESTORE spinlock. في هذه الحالة، يحدث استخدام كبير لوحدة المعالجة المركزية في Microsoft SQL Server.
السبب
تحدث المشكلة عندما تصل ذاكرة التخزين المؤقت لخطة SQL Server إلى حد الإدخال الخاص بها، ويجب إخلاء الخطط ذات التكلفة المنخفضة لإدراج خطط جديدة. يؤدي هذا إلى تنازع شديد على SOS_CACHESTORE spinlock الذي يوفر مزامنة لمستودعات جدول التجزئة لذاكرة التخزين المؤقت لخطة SQL Server.
الحل
معلومات التحديث التراكمي
تم إصلاح المشكلة أولا في التحديث التراكمي التالي SQL Server.
يحتوي كل تحديث تراكمي جديد SQL Server على جميع الإصلاحات العاجلة وجميع إصلاحات الأمان التي تم تضمينها مع التحديث التراكمي السابق. اطلع على آخر التحديثات التراكمية SQL Server:
مزيد من المعلومات
تحتوي ذاكرة التخزين المؤقت للخطة على حدين: الحجم الإجمالي والعدد الإجمالي لجميع الخطط. يتم شرح حدود الحجم وعدد الإدخالات في المستند التقني التالي:
تخطيط ذاكرة التخزين المؤقت الداخلية
الحد الأقصى لعدد الإدخالات التي يمكن أن تحتفظ بها ذاكرة التخزين المؤقت للخطة هو أربعة أضعاف عدد المستودعات. يمكنك التحقق من هذه المعلومات عن طريق تشغيل الاستعلامات التالية:
select name, type, buckets_count
from sys.dm_os_memory_cache_hash_tables
where name IN ( 'SQL Plans' , 'Object Plans' , 'Bound Trees' )
select name, type, pages_kb, entries_count
from sys.dm_os_memory_cache_counters
where name IN ( 'SQL Plans' , 'Object Plans' , 'Bound Trees' )
على سبيل المثال، في أنظمة 64 بت، عدد المستودعات لذاكرة التخزين المؤقت للخطة SQL Server هو 40,009. لذلك، الحد الأقصى لعدد الإدخالات التي يمكن احتواؤها داخل ذاكرة التخزين المؤقت لخطة SQL Server هو 160,036.
إذا كان لديك حمل عمل يستخدم استعلامات مخصصة مختلفة، يمكن أن يصبح هذا الحد ازدحاما. يعالج التغيير الذي تم إجراؤه بواسطة هذا الإصلاح العاجل هذا الموقف. بعد تثبيت هذا الإصلاح العاجل وتمكين التغيير باستخدام علامة تتبع بدء التشغيل "-T 174"، يتم زيادة عدد المستودعات إلى 160,001 على أنظمة 64 بت. ثم يمكن لذاكرة التخزين المؤقت للخطة الاحتفاظ بحد أقصى 640,004 خطة.
الحالة
أقرت Microsoft أن هذه المشكلة تحدث في منتجات Microsoft المسردة في المقطع "تنطبق على".