Hi all,
I've read so much about optimizing disk usage, calculations, etc. but so very little about optimizing CPU. The SSAS performance tuning guide briefly glazes over it.
In my case, my CPU is by far the bottleneck and I can't seem to understand why.
We have quite a reasonable amount of multiple user activity (up to about 200 queries per second). We also use proactive caching for our real-time ROLAP partitions. The SQL Server instances hosting the ROLAP data actually don't use much CPU (we use ROLAP aggregations - indexed views).
When reviewing the trace in profiler, I see it always hits aggregations. It gets data from the MOLAP aggregation and then the ROLAP aggregation (by means of a SQL query). It then does quite a few "Query Subcubes" over what I suppose is the data it pulled out of the aggregations. This is what seems to chew through the CPU.
Even with a very simple MDX query that requests data that exactly matches what I have aggregations on, the query subcubes seem to always chew through CPU.
What ends up happening is that in peak time (200 queries/sec), the CPU is almost consistently 100%. We have eight 2.4Ghz processors.
Is this normal? As in, is this the expected peak for the server at 200 queries/sec? I would have thought with a highly aggregated cube we'd be able to receive a very large number of queries.
Looking for any advice on how to tune this or diagnose further.