Резюме
Среди, които изпълняват голям обем транзакции на бази данни на екземпляр на Microsoft SQL Server 2019, може да доведат до сериозна конкуренция със спинлоуз. Спорът обикновено се наблюдава при системи от висок клас, които използват процесори от по-ново поколение.
Следните условия могат да се наблюдават по отношение на тежко състезание за спинлок:
- Често се наблюдава на съвременен хардуер, особено процесори Intel Skylake. Може да се наблюдава и на други съвременни процесори.
- Обикновено се наблюдава на системи, които имат много процесори.
- Възможно е средите да имат повече едновременни потребители, като например критични за мисията и силно транзакционни работни натоварвания.
- Симптомите включват неочаквано високо натоварване на процесора и много завъртания и събития на отстъпване за определен тип спинлоук, както и по-голям брой завъртания на сблъсък.
Състояние
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.
Решение
Подобрението на spinlock е предоставено за първи път в кумулативна актуализация 2 за SQL Server 2019. Допълнителни подобрения са направени в следните кумулативни актуализации за SQL Server:
- Сборна актуализация 8 за SQL Server 2019
- Сборна актуализация 14 за SQL Server 2019
- Сборна актуализация 16 за SQL Server 2019
Препоръчваме ви да приложите най-новата кумулативна актуализация в този списък, за да се справите с различни проблеми със състезанието при завъртане.
Важно: За да можете да коригирате проблема със SpinLock, флаг за проследяване 8101 трябва да бъде активиран, след като приложите една от CU от този списък.
За кумулативните актуализации за SQL Server
Всяка нова кумулативна актуализация за SQL Server съдържа всички актуални поправки и корекции на защитата, които са били включени в предишната кумулативна актуализация. Прегледайте последните кумулативни актуализации за SQL Server:
Отстраняване на неизправности
За отстраняване на неизправности със спинлоп конкуренция, вижте следните статии за по-задълбочена информация относно това как да идентифицирате и разрешавате проблеми, които са свързани с висока конкуренция за ЦП и спинлоук в приложения на SQL Server:
- Технически документ: Диагностика и разрешаване на състезанието за спинлоп на SQL Server | Microsoft Learn
- Отстраняване на проблеми с високо натоварване на процесора в SQL Server | Microsoft Learn
Справки
Научете повече относно терминологията, която Microsoft използва за описване на актуализациите на софтуера.
sys.dm_os_spinlock_stats (Transact-SQL) | Microsoft Learn
DBCC TRACEON – Флагове за проследяване (Transact-SQL)
Отказ от отговорност за информация от трети лица
Продуктите на други разработчици, обсъждани в тази статия, са произведени от независими от Microsoft фирми. Microsoft не дава никаква подразбираща се или друга гаранция относно производителността или надеждността на тези продукти.