Oprava: SOS_CACHESTORE spinlock soupeření na ad hoc mezipaměti plánu SQL Server způsobuje vysoké využití procesoru v systému SQL Server 2012 a 2014

DŮLEŽITÉ: Tento článek je přeložen pomocí softwaru na strojový překlad Microsoft. Nepřesný či chybný překlad lze opravit prostřednictvím technologie Community Translation Framework (CTF). Microsoft nabízí strojově přeložené, komunitou dodatečně upravované články, a články přeložené lidmi s cílem zajistit přístup ke všem článkům v naší znalostní bázi ve více jazycích. Strojově přeložené a dodatečně upravované články mohou obsahovat chyby ve slovníku, syntaxi a gramatice. Společnost Microsoft není odpovědná za jakékoliv nepřesnosti, chyby nebo škody způsobené nesprávným překladem obsahu nebo jeho použitím našimi zákazníky. Více o CTF naleznete na http://support.microsoft.com/gp/machine-translation-corrections/cs.

Projděte si také anglickou verzi článku: 3026083
Příznaky
Při vložení příliš mnoho souběžných dochází ve stejném bloku algoritmu hash nebo ad hoc mezipaměti plánu SQL Server narazí zadání maximálního počtu 160,036, dojde k závažné tvrzení o SOS_CACHESTORE spinlock. V této situaci dojde vysoké využití procesoru v Microsoft SQL Server 2012 a SQL Server 2014.
Příčina
Problém nastává, protože po přístupy do mezipaměti plánu SQL Server, limit položka plány s nízkými náklady musí být vyřazena pro vložení nové plány. To vede k těžkým soupeření pro spinlock SOS_CACHESTORE, který zajišťuje synchronizaci bloků tabulek hash mezipaměti plánu SQL Server.
Řešení

Informace o kumulativní aktualizaci

Tento problém byl poprvé opraven v následující kumulativní aktualizace serveru SQL Server.

O kumulativní aktualizace pro SQL Server

Každé nové kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Pro rezervaci nejnovější kumulativní aktualizace pro SQL Server:
Další informace
Mezipaměť plán má dvě omezení celkové velikosti a celkový počet všech plánů. Počet omezení velikosti a položky jsou popsány v dokumentu white paper Interní mezipaměti plánu. Maximální počet položek, které uchovávají v mezipaměti plán je čtyřikrát počet bloků. Tyto informace můžete ověřit pomocí následující dotazy:
select name, type, buckets_count from sys.dm_os_memory_cache_hash_tableswhere name IN ( 'SQL Plans' , 'Object Plans' , 'Bound Trees' ) select name, type, pages_kb, entries_count from sys.dm_os_memory_cache_counterswhere name IN ( 'SQL Plans' , 'Object Plans' ,  'Bound Trees' )
Bloky pro ukládání do mezipaměti plánu SQL Server je v 64bitových systémech, 40,009. Maximální počet položek, které se vejdou do mezipaměti plánu SQL Server je tedy 160,036. Máte pracovní vytížení, které používají různé dotazy ad hoc, toto omezení může být kritický bod. V těchto případech můžete změnou v této opravě hotfix. Po instalaci této opravy hotfix a změnu povolit pomocí spuštění trasování Příznak -T 174, plechovka se zvýší na 160,001 na 64bitové systémy. Proto plán mezipaměti nyní může obsahovat maximálně 640,004 plány.
Prohlášení
Společnost Microsoft potvrdila, že se jedná o problém v produktech společnosti Microsoft, které jsou uvedeny v části "Platí pro".

Upozornění: Tento článek je přeložený automaticky

Vlastnosti

ID článku: 3026083 - Poslední kontrola: 06/24/2015 08:34:00 - Revize: 3.0

Microsoft SQL Server 2012 Service Pack 2, Microsoft SQL Server 2012 Service Pack 1, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Web, Microsoft SQL Server 2014 Service Pack 1

  • kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB3026083 KbMtcs
Váš názor