Simptome
Kada koristite novu instancu sistema Microsoft SQL Server 2016 (ili 2017) ili instancu programa SQL Server 2016 (ili 2017) koja je nadograđena sa starije verzije programa SQL Server, dolazi do problema sa performansama zbog visoke iskorišćenosti CPU-a. Pored toga, ako izvršite upit u sys.dm_os_spinlock_stats tabelu, primetićete visoku vrednost u koloni sa rotacijama za redove SECURITY_CACHE (keš bezbednosti) i CMED_HASH_SET (keš metapodataka) (u poređenju sa drugim redovima u tabeli). Na primer, primetićete sledeće vrednosti.
Izazvati
Do ovog problema dolazi zbog velike konverzacije zaključavanja broja u veoma istovremenom sistemu. U ovim operativnim sistemima se više niti CPU-a nadmeću za resurse i okreću se za duži interval dok se periodično izvršavaju u petlji da bi se utvrdilo da li je resurs dostupan umesto da se odmah daje. Kada više CPU niti nastavi da se okreće (neko vreme) za resurs umesto da daje, to dovodi do problema sa visokom iskorišćenošću CPU-a i performansama.
Rezoluciju
Ovaj problem je rešen u sledećim kumulativnim ispravkama za SQL Server:
Beleške Kada primenite SQL Server 2016. kumulativnu ispravku 2 (CU2), imena SECURITY_CACHE i CMED_HASH_SET se menjaju u LOCK_RW_SECURITY_CACHE i LOCK_RW_CMED_HASH_SET, tim redom. Nakon primene funkcije CU2, vrednosti se pojavljuju na sledeći način.
Svaka nova kumulativna ispravka za SQL Server sadrži sve hitne ispravke i sve bezbednosne ispravke koje su uključene u prethodnu kumulativnu ispravku. Pogledajte najnovije kumulativne ispravke za SQL Server:
Status
Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku "Odnosi se na".
Reference
Saznajte više o terminologiji koju Microsoft koristi za opisivanja softverskih ispravki.
Beli papir Dijagnostikovanje i rešavanje spinlock sadržaja na SQL Server detaljno opisuje probleme i rešenja vezana za sporne stavke.