KB2928300 – FIX: Intensive Abfragekompilierungsworkload lässt sich nicht mit wachsender Anzahl von Kernen auf NUMA-Hardware skalieren und führt zu einer CPU-Sättigung in SQL Server

Gilt für
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Symptome

Nehmen Sie folgendes Szenario an:

  • Sie verwenden eine instance von Microsoft SQL Server 2012 oder SQL Server 2014, für die NUMA aktiviert ist.
  • SQL Server ist so konfiguriert, dass viele CPU-Kerne über mehrere NUMA-Knoten hinweg verwendet werden (z. B. vier NUMA-Knoten mit jeweils 12 Kernen).
  • Sie führen eine kompilierte Workload aus, die eine hohe Kompilierungsrate aus mehreren gleichzeitigen Verbindungen generiert.

In diesem Szenario bemerken Sie keinen Anstieg der Ergebnisse einer Kompilierungs-/s-Abfrage mit einer wachsenden Anzahl verfügbarer Kerne, die über 12 oder so hinausgehen. Außerdem kann die CPU eine Auslastung von 100 Prozent anzeigen.

Hinweis Der Schweregrad der CPU-Sättigung hängt von der Anzahl der Kerne pro NUMA-Knoten und auch von Ihrer Kompilierungsrate ab.

Ursache

Das Problem tritt auf, weil SQL Server eine Datenstruktur verwendet, die zu CPU-Konfliktmustern auf NUMA-fähiger Hardware bei gleichzeitigen Kompilierungen beitragen kann.

Lösung

Nachdem Sie diese Korrektur angewendet haben, ersetzt SQL Server die Verwendung einer freigegebenen Struktur durch threadlokale 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

Informationen zu kumulativen Updates für SQL Server

Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheitsfixes, die im vorherigen kumulativen Update enthalten waren. Sehen Sie sich die neuesten kumulativen Updates für SQL Server an:

      

Problemumgehung

Um das Problem zu umgehen, reduzieren Sie die Kompilierungsrate in Ihrem SQL Server System.

Status

Microsoft hat bestätigt, dass dies ein Problem bei den Microsoft-Produkten ist, die im Abschnitt „Gilt für“ aufgeführt sind.