Симптоми
Когато в един и същ хеширащ набор се появят твърде много едновременни вмъкнати елементи или когато ad hoc кешът на плана за SQL Server достигне входното ограничение от 160 036, възниква тежко размирение на SOS_CACHESTORE брояч. В този случай възниква високо натоварване на ЦП в Microsoft SQL Server.
Причина
Проблемът възниква, когато кешът на плана за SQL Server достигне лимита си за въвеждане, а плановете, които имат ниска цена, трябва да бъдат изхвърлени, за да се вмъкнат нови планове. Това води до големи разножения за SOS_CACHESTORE брояч, който предоставя синхронизация за хешираните набори таблици на кеша на плана за 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, които са изброени в раздела "Отнася се за".