Podsumowanie
Środowiska, które uruchamiają dużą liczbę transakcji bazy danych w wystąpieniu programu Microsoft SQL Server 2019, mogą powodować poważne problemy ze spinlockiem. Rywalizacja jest zwykle obserwowana w systemach z wyższej półki, które wykorzystują procesory nowszej generacji.
W związku z ciężką rywalizacją o spinlock można zaobserwować następujące warunki:
- Najczęściej spotykane na nowoczesnym sprzęcie, w szczególności procesorach Intel Skylake. Można to również zaobserwować na innych nowoczesnych procesorach.
- Zwykle obserwowane w systemach, które mają wiele procesorów.
- Środowiska mogą mieć większą liczbę jednoczesnych użytkowników, takich jak obciążenia o znaczeniu krytycznym i wysoce transakcyjne.
- Objawy obejmują nieoczekiwanie wysokie użycie procesora oraz wiele zdarzeń rotacji i wycofywania dla określonego typu blokady spinlock oraz większą liczbę obrotów na kolizję.
Stan
Firma Microsoft potwierdziła, że jest to problem dotyczący produktów firmy Microsoft wymienionych w sekcji „Dotyczy”.
Rozwiązanie
Ulepszenie blokady spinlock zostało po raz pierwszy udostępnione w aktualizacji zbiorczej 2 dla programu SQL Server 2019. Dodatkowe ulepszenia zostały wprowadzone w następujących aktualizacjach zbiorczych dla programu SQL Server:
- Aktualizacja zbiorcza 8 dla programu SQL Server 2019
- Aktualizacja zbiorcza 14 dla programu SQL Server 2019
- Aktualizacja zbiorcza 16 dla programu SQL Server 2019
Zalecamy zastosowanie najnowszej aktualizacji zbiorczej z tej listy, aby rozwiązać różne problemy z rywalizacją o spinlock.
Ważne: Aby można było rozwiązać problem z blokadą spinlocka, należy włączyć flagę śledzenia 8101 po zastosowaniu jednej z jednostek skumulowanych z tej listy.
Informacje o aktualizacjach zbiorczych dla programu SQL Server
Każda nowa aktualizacja zbiorcza programu SQL Server zawiera wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji skumulowanej. Sprawdź najnowsze aktualizacje zbiorcze dla programu SQL Server:
Rozwiązywanie problemów
Aby rozwiązać problemy związane z rywalizacją o spinlock, zobacz następujące artykuły zawierające szczegółowe informacje na temat identyfikowania i rozwiązywania problemów związanych z dużą rywalizacją o procesor i spinlock w aplikacjach programu SQL Server:
- Oficjalny dokument: Diagnozowanie i rozwiązywanie rywalizacji o blokadę w programie SQL Server | Microsoft Learn
- Rozwiązywanie problemów z wysokim użyciem procesora CPU w programie SQL Server | Microsoft Learn
Źródła informacji
Dowiedz się więcej o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.
sys.dm_os_spinlock_stats (Transact-SQL) | Microsoft Learn
DBCC TRACEON — śledzenie flag (Transact-SQL)
Zastrzeżenie dotyczące innych firm
Produkty innych firm omawiane w tym artykule są tworzone przez firmy niezależne od firmy Microsoft. Firma Microsoft nie udziela jakichkolwiek gwarancji, dorozumianych ani innych, co do wydajności i niezawodności tych produktów.