Simptomi
Pretpostavimo da imate neke upite koje se odnose na tablice koje imaju mnogo statistika u programu Microsoft SQL Server 2012 ili Microsoft SQL Server 2014. Kada se u istoj ćeliji raspršivanja prikazuje previše istodobnih umetanja ili predmemorirana predmemorija sistemske tablice, pojavljuje se ograničenje stupanja na 1.196 s velikim duljinama koštice, teškim sporom na SOS_CACHESTORE Spinlock i visokom korištenju procesora.
Uzrok
Taj se problem pojavljuje zato što, kada stalno umećete unose za istu sistemsku tablicu u ovu predmemoriranu tablicu sustava, tijekom sastavljanja, možete naići na tvrdnju na SOS_CACHESTORE Spinlock koja štiti ćelije hash table za ovu predmemoriju. Jedan od uvjeta koji uzrokuju taj problem predstavlja puno statističkih podataka koji se prikazuju u tablicama uključenih u kompilirani upit.
Rješenje
Informacije o servisnom paketu
Da biste riješili taj problem, nabavite servisni paket 1 za SQL Server 2014.
Dodatne informacije o sustavu SQL Server 2014 Service Pack 1 (SP1) potražite u članku pogreške koje su ispravljene u sustavu SQL server 2014 Service Pack 1.
Kumulativne informacije o ažuriranju
Problem je prvi put riješen u sljedećem kumulativnom ažuriranju sustava SQL Server.
Svako novo Kumulativno ažuriranje za SQL Server sadrži sve hitne popravke i sve sigurnosne ispravke uključene u prethodno Kumulativno ažuriranje. Pogledajte najnovija kumulativna ažuriranja za SQL Server:
Dodatne informacije
U svakoj bazi podataka postoji predmemorija s skupom tablice sustava koja pohranjuje unose iz sistemskih tablica u memoriji. Kada se podaci čitaju iz tablica sustava, ona se predmemoriraju u predmemoriranoj memorijskih tablica tablice sustava za tu bazu podataka. Kanta za raspršivanje koja određuje mjesto predmemoriranog unosa izvorno se temelji na identifikatoru sistemske tablice. Kada istodobno pročitate puno unosa iz iste sistemske tablice, ona može rezultirati prethodnim sporom. Promjene u rješavanju adrese argument na dva načina:
-
Veličina svake tablice sustava za postavljanje redaka predmemorije za tablice u tablici povećava se s 299 na 599.
-
Algoritam za raspršivanje promijenjen je na način da stavke iz iste sistemske tablice ne završavaju uvijek u istoj kanti za raspršivanje.
Informacije o memoriji za postavljanje redaka tablice sustava možete prikazati pomoću sljedećih upita:
select * from sys.dm_os_memory_cache_hash_tableswhere name IN ( 'SystemRowsetStore' ) select * from sys.dm_os_memory_cache_counterswhere name IN ( 'SystemRowsetStore' )
Informacije o takmičenja Spinlock možete pogledati pomoću sljedećeg upita:
select * from sys.dm_os_spinlock_statswhere name = 'SOS_CACHESTORE'
Status
Microsoft je potvrdio da se radi o problemu u Microsoftovim proizvodima navedenim u odjeljku "odnosi se na".