Database Reference
In-Depth Information
Finally, remember that the properties we have looked at here only control the
Analysis Services Memory Manager, and not any other virtual memory allocations
made by components related to Analysis Services: for example, an Analysis Services
stored procedure could allocate its own memory directly from the operating system,
outside of the control of the Memory Manager.
Other Memory Manager Settings
The Memory Manager can be fine-tuned using other server properties
such as MidMemoryPrice and HighMemoryPrice . More details on
these properties, and the inner workings of the Memory Manager, can
be found in Chapter 27 of Microsoft SQL Server 2008 Analysis Services
Unleashed , Gorbach , Berger , and Melomed, Sams Publishing .
The most important thing to remember is that Analysis Services requests virtual
memory from the operating system and cannot control whether it is using physical
RAM or not. This is intentional. Analysis Services might have a pattern of use
very different from SQL Server (which has a completely different model to handle
memory allocation) and paging memory to disk could be a good compromise during
periods of low usage, especially if other services such as SQL Server are running
on the same server. However, if paging activity becomes an issue, we can try to
reduce the number of memory requests made by Analysis Services to the operating
system. First, we can set the LowMemoryLimit property to a lower value, making the
Memory Manager more aggressive in freeing up memory. If this is not enough, we
set the TotalMemoryLimit property to a lower value too. Changing these properties
doesn't require restarting the service.
Out of memory conditions in Analysis Services
So far, we have explained how to control the Analysis Services Memory Manager at
a high level, but we also said that in most cases, it is better to not change the default
settings except in certain circumstances. Another reason why we might want to
change these settings is when we find Analysis Services has run out of memory. This
can happen when the operating system cannot provide the memory requested by
Analysis Services, as in the following scenarios:
Processes other than Analysis Services are consuming virtual memory.
Regardless of the actual use of memory made by Analysis Services, if other
processes consume virtual memory, new allocations might be denied to
Analysis Services when it requests them.
Analysis Services consumes too much memory, using up all the virtual
memory available. This might happen under heavy load, and we cannot
completely control this by changing the memory settings of Analysis Services.
 
Search WWH ::




Custom Search