Symptoms
Consider the following scenario:
-
You use an instance of Microsoft SQL Server 2012 or SQL Server 2014 that has NUMA enabled.
-
SQL Server is configured to use many CPU cores across multiple NUMA nodes (for example, 4 NUMA nodes that have 12 cores each).
-
You run a compile-heavy workload that generates a high compilation rate from multiple concurrent connections.
In this scenario, you do not notice any increase in the results of a compilation/sec query with growing number of available cores beyond 12 or so. Also, CPU may show 100 percent utilization.
NoteĀ The severity of the CPU saturation depends on the number of cores per NUMA node and also on your compilation rate.Cause
The issue occurs because SQL Server uses a data structure that may contribute to CPU contention patternsĀ on NUMA-enabled hardware across concurrent compilations.
Resolution
After you apply this fix, SQL Server replaces the use of a shared structure with thread-local data.
The issue was first fixed in the following cumulative update of SQL Server.Cumulative Update 1 for SQL Server 2012 SP2 /en-us/help/2976982
Cumulative Update 2 for SQL Server 2014 /en-us/help/2967546
Cumulative Update 10 for SQL Server 2012 SP1 /en-us/help/2954099
Each new cumulative update for SQL Server contains all the hotfixes and all the security fixes that were included with the previous cumulative update. Check out the latest cumulative updates for SQL Server:
Workaround
To work around the issue, reduce the compilation rate in your SQL Server system.
Status
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.