KB3026082 - Ispravka: SOS_CACHESTORE spinlock spor na sistemskoj tabeli rowset keš uzrokuje visoku upotrebu CPU-a u SQL Server 2012 ili 2014

Radite bilo gde na bilo kom uređaju sa uslugom Microsoft 365

Nadogradite na Microsoft 365 da biste radili bilo gde sa najnovijim funkcijama i ispravkama.

Nadogradi odmah

Simptomi

Pretpostavimo da imate neke upite koji se odnose na tabele koje imaju mnogo statističkih podataka u sistemima Microsoft SQL Server 2012 ili Microsoft SQL Server 2014. Kada se u istoj heš kofi pojavi previše uporednih umetanja ili sistemska tabela rowset keša dostigne ograničenje unosa od 1.196 sa velikim dužinama kofe, dolazi do ozbiljne sporne stavke na SOS_CACHESTORE spinlock-u i dolazi do velike upotrebe CPU-a.

Uzrok

Do ovog problema dolazi zato što, kada konstantno umećete stavke za istu sistemsku tabelu u ovu keš memoriju grupe sistemskih tabela tokom prevovanja, možete naići na spor na SOS_CACHESTORE kičmenom stolu koji štiti kofe heš tabele za ovu keš memoriju. Jedan od uslova koji uzrokuje ovaj problem je mnogo statističkih podataka koji se predstavljaju u tabelama koje su uključene u prevedeni upit.

Rešenje

Informacije o servisnom paketu

Da biste rešili ovaj problem, nabavite servisni paket 1 za SQL Server 2014.

Više informacija o SQL Server 2014 servisnom paketu 1 (SP1) potražite u greškama koje su fiksirane u SQL Server 2014 servisnom paketu 1.

Kumulativne informacije o ažuriranju

Problem je prvi put otklonjen u sledećoj kumulativnoj ispravki sistema SQL Server.

Svaka nova kumulativna ispravka za SQL Server sadrži sve hitne ispravke i sve bezbednosne ispravke koje su bile uključene u prethodnu kumulativnu ispravku. Pogledajte najnovije kumulativne ispravke za SQL Server:

Više informacija

Svaka baza podataka ima keš grupe redova sistemske tabele koja skladišti stavke iz sistemskih tabela u memoriji. Kada se informacije čitaju iz sistemskih tabela, keširaju se u keš sistemske tabele za tu bazu podataka. Heš kofa koja određuje lokaciju keširane stavke prvobitno je zasnovana na identifikatoru sistemske tabele. Kada istovremeno pročitate mnogo stavki iz iste sistemske tabele, to može dovesti do prethodnog spora. Promene u fiksnoj adresi rešavaju spor na dva načina:

  • Veličina svake sistemske tabele hash tabele keširanja sadržaja povećana je sa 299 na 599.

  • Algoritam hešinga se menja na način da stavke iz iste sistemske tabele ne završe uvek u istoj heš kofi.

Pomoću sledećih upita možete da prikažete informacije o kešu grupe redova sistemske tabele:

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 sporu sa spinlock-om možete da prikažete pomoću sledećeg upita:

select * from sys.dm_os_spinlock_statswhere name = 'SOS_CACHESTORE'

Status

Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku "Odnosi se na".

Potrebna vam je dodatna pomoć?

Unapredite veštine
Istražite obuku
Prvi nabavite nove funkcije
Pridružite se Microsoft insajdere

Da li su vam ove informacije koristile?

Hvala vam na povratnim informacijama!

Hvala za povratne informacije! Izgleda da će biti od pomoći ako vas povežemo sa našim agentima Office podrške.

×