Database Reference
In-Depth Information
CPU
Analysis Services consumes CPU during two operations: processing and querying .
Many of the operations performed by Analysis Services can scale on multiple cores.
We won't go into detail here about the extent that each single operation can scale
on multiple cores, simply because this might be subject to change in future releases
or service packs. However, Analysis Services can scale up because it runs multiple
operations in parallel (for example, in Enterprise Edition, multiple objects can be
processed in parallel), but also because a single operation (for example, processing a
single partition) can be executed across several threads.
During partition processing, CPU is used mainly to build aggregations. If a partition
doesn't have any aggregations designed, then CPU usage will be minimal. However,
as we will explain in more detail later on, CPU consumption will only be high during
partition processing if there is enough RAM available for Analysis Services, and
memory paging is kept to a minimum. If we don't have enough physical memory for
Analysis Services, we will see long processing times even if there is little CPU usage.
In general, having high CPU usage during processing is a good thing because it
generally means that there are no other bottlenecks in memory or I/O operations. If
we want to reduce processing times when we already have high CPU usage, we need
to either reduce the number of aggregations in the cube design or add more CPU
cores on the server running Analysis Services.
During querying, CPU is used by Analysis Services to perform calculations on
the data that has been requested by a query. Most of these calculations scale on
a multicore server, but sometimes (and this happens more often than during
processing) it might not be possible to parallelize an operation across several
threads. In such cases, a single query cannot take advantage of a multicore server.
For example, the Formula Engine is single-threaded whereas the Storage Engine
is multithreaded. If the query has complex MDX calculations, the Formula Engine
can only use a single CPU. This scenario can be recognized by observing the CPU
usage of the msmdsrv.exe process while a single MDX query is executing. If there
is a bottleneck in the Formula Engine, the process does not consume more than the
equivalent of one core.
 
Search WWH ::




Custom Search