Симптоми
Когато използвате нов екземпляр на Microsoft SQL Server 2016 (или 2017) или екземпляр на SQL Server 2016 (или 2017), който е надстроен от по-стара версия на SQL Server, имате проблеми с производителността поради високо натоварване на ЦП. Освен това, ако направите заявка към таблицата sys.dm_os_spinlock_stats , ще забележите висока стойност в брояч колоната за редовете на SECURITY_CACHE (кеш за защита) и CMED_HASH_SET (кеш за метаданни) (в сравнение с другите редове в таблицата). Например забелязвате следните стойности:
Причина
Този проблем възниква поради висока степен на блокиране на въртенето в силно паралелна система. В тези операционни системи няколко нишки на ЦП се конкурират за ресурси и се въртят за продължителен интервал, докато се изпълняват в цикъл периодично, за да се определи дали ресурсът е наличен, вместо да се получава веднага. Когато няколко нишки на ЦП продължават да се въртят ( в определен цикъл ) за ресурс, вместо да дават, това води до големи проблеми с използването на процесора и производителността.
Решение
Този проблем е коригиран в следните кумулативни актуализации за SQL Server:
Забележка След като приложите SQL Server 2016 сборна актуализация 2 (CU2), имената на SECURITY_CACHE и CMED_HASH_SET се променят съответно на LOCK_RW_SECURITY_CACHE и LOCK_RW_CMED_HASH_SET. След прилагането на CU2 стойностите се показват по следния начин.
Всяка нова кумулативна актуализация за SQL Server съдържа всички горещи поправки и всички корекции на защитата, които са били включени в предишната кумулативна актуализация. Прегледайте най-новите кумулативни актуализации за SQL Server:
Статут
Microsoft потвърди, че това е проблем в продуктите на Microsoft, които са изброени в раздела "Отнася се за".
Препратки
Научете повече за терминологията , която Microsoft използва за описване на актуализациите на софтуера.
Бялата хартия Диагностициране и отстраняване на спор на Spinlock на SQL Server обсъжда проблеми и решения, които са свързани подробно със спор на гръбнака.