Update: Verursacht SOS_CACHESTORE Spinlock Konflikte für ad-hoc-Plan-Cache von SQL Server in SQL Server 2012 oder 2014 hohen CPU-Auslastung

Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.

Den englischen Originalartikel können Sie über folgenden Link abrufen: 3026083
Problembeschreibung
Wenn zu viele gleichzeitige Einfügevorgänge in der gleichen Hashbucket auftreten oder ad-hoc-SQL Server-Plan-Cache Eintrag maximal 160,036 Treffer, tritt schweren Konfliktsituationen auf SOS_CACHESTORE Spinlock. In diesem Fall tritt ein hoher CPU-Auslastung in Microsoft SQL Server 2012 oder SQL Server 2014.
Ursache
Das Problem tritt auf, weil bei der Plancache SQL Server seinen Eintrag Wert Pläne mit erreicht kostengünstige entfernt werden müssen zum Einfügen von neuer Plänen. Dies führt zu starke Konkurrenz für die SOS_CACHESTORE Spinlock, die Synchronisierung für den Hash Buckets vom des Plan-Caches SQL Server bereitstellt.
Lösung

Kumulatives Update-Informationen

Das Problem wurde erstmals im folgenden kumulativen Update von SQL Server behoben.

Zu kumulativen Updates für SQL Server

Jede neues Kumulatives Update für SQL Server enthält alle Hotfixes und alle das Sicherheits-Updates in das vorherige kumulative Update enthalten waren. Lesen Sie den neuesten kumulativen Updates für SQL Server:
Weitere Informationen
Der Plan-Cache verfügt über zwei Beschränkungen, die Gesamtgröße und die Gesamtzahl aller Pläne. Die Einschränkungen der Benutzeranzahl Größe und Posten werden im Whitepaper erläutert. Plan-Cache Internals. Die maximale Anzahl von Einträgen, die ein Plan-Cache aufnehmen kann ist vier Mal die Anzahl der Buckets. Sie können diese Informationen überprüfen, indem Sie mithilfe der folgenden Abfragen:
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' )
Auf 64-Bit-Systemen die Buckets für die SQL Server-Plan-Cache ist beispielsweise 40,009. Aus diesem Grund ist die maximale Anzahl von Einträgen, die in der SQL Server-Plan-Cache passen 160,036. Wenn Sie eine Arbeitsauslastung, die verschiedene ad-hoc-Abfragen verwendet wird verfügen, kann dieses Limit einen Engpass darstellen. In diesen Fällen können Sie die Änderung in diesem Hotfix. Nach der Installation dieses Hotfixes und die Änderung mithilfe der Start-Ablaufverfolgungs flag -T 174, erhöht sich die Bucketanzahl auf 160,001 auf 64-Bit-Systemen. Daher kann der Plan-Cache jetzt eine maximale Anzahl von 640,004 Pläne enthalten.
Status
Microsoft hat bestätigt, dass es sich um ein Problem bei den Microsoft-Produkten handelt, die im Abschnitt "Eigenschaften" aufgeführt sind.

Warnung: Dieser Artikel wurde automatisch übersetzt.

Eigenschaften

Artikelnummer: 3026083 – Letzte Überarbeitung: 06/24/2015 08:34:00 – Revision: 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 KbMtde
Feedback