Problembeschreibung
Stellen Sie sich folgendes Szenario vor:
-
Sie verwenden eine Instanz von Microsoft SQL Server 2012 oder SQL Server 2014, für die NUMA aktiviert ist.
-
SQL Server ist so konfiguriert, dass viele CPU-Kerne für mehrere NUMA-Knoten verwendet werden (beispielsweise 4 NUMA-Knoten mit jeweils 12 Kernen).
-
Sie führen eine rechenintensive Arbeitsauslastung aus, die eine hohe Kompilierungs Rate von mehreren gleichzeitigen Verbindungen generiert.
In diesem Szenario sehen Sie keine Erhöhung der Ergebnisse einer Kompilierung/sec-Abfrage mit einer wachsenden Anzahl von verfügbaren Kernen, die nicht mehr als 12 sind. Darüber hinaus kann die CPU eine Auslastung von 100 Prozent aufweisen.Hinweis Der Schweregrad der CPU-Sättigung hängt von der Anzahl der Kerne pro NUMA-Knoten und auch von der Kompilierungs Rate ab.
Ursache
Das Problem tritt auf, weil SQL Server eine Datenstruktur verwendet, die möglicherweise zu CPU-Konflikt Mustern auf NUMA-fähiger Hardware für gleichzeitige Kompilierungen beiträgt.
Fehlerbehebung
Nachdem Sie diesen Fix angewendet haben, ersetzt SQL Server die Verwendung einer freigegebenen Struktur durch Thread lokale Daten. Das Problem wurde zuerst im folgenden kumulativen Update von SQL Server behoben.
Kumulatives Update 1 für SQL Server 2012 SP2 /en-us/help/2976982
Kumulatives Update 2 für SQL Server 2014 /en-us/help/2967546
Kumulatives Update 10 für SQL Server 2012 SP1 /en-us/help/2954099
Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheitsupdates, die im vorherigen kumulativen Update enthalten waren. Schauen Sie sich die neuesten kumulativen Updates für SQL Server an:
Problemumgehung
Um das Problem zu umgehen, verringern Sie die Kompilierungs Rate in Ihrem SQL Server-System.
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.