Symptoms
Consider the following scenario:
-
You use SQL Server Analysis Services in Multidimensional mode.
-
You set the HeapTypeForObjects property to 0 to use the Windows Low Fragmentation Heap.
-
You run a mixture of queries and processing operations.
In this scenario, the large objects that are allocated by the Analysis Services engine may cause fragmentation in the Windows memory heap over a period of hours or days. When the fragmentation builds up, an index processing operation may start to bottleneck and take a very long time to finish.
Resolution
Update information
This issue is fixed in the following cumulative updates of SQL Server:Cumulative Update 1 for SQL Server 2014 SP2Cumulative Update 4for SQL Server 2012 Service Pack 3Cumulative Update 8 for SQL Server 2014 SP1
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:
Latest cumulative update for SQL Server 2012 SP3 Latest cumulative update for SQL Server 2014 (SP1/SP2)
More Information
By default, Analysis Services uses the Windows Low Fragmentation Heap (LFH) for memory allocations of fixed type objects. This is controlled by the HeapTypeForObjects setting. In some cases, the LFH heap can become fragmented and cause performance bottlenecks. The LFH typically become fragmented when allocations are made that are greater than 16 KB.
This update changes the Analysis Services behavior for these fixed type object allocations to use the Windows LFH heap only if the size of the object is less than 16 KB. If the size of the object is greater than 16 KB, Analysis Services instead uses the Analysis Services Heap implementation. The Analysis Services Heap implementation might run slower than the LFH heap. However, it does not experience this fragmentation problem.Status
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
References
Learn about the terminology that Microsoft uses to describe software updates.