Quantcast
Channel: SQL Server Analysis Services forum
Viewing all articles
Browse latest Browse all 14337

MDX Performance Issue - Dimension Member Count(Filter())

$
0
0

I have a dimension that will be 700,000 members -- not ideal!  The good news is that no one is likely to be presenting that dimension on a report.  The bad news is that I have a calculation I need to perform that I am pretty sure is going to have serious performance problems.  I've optimized it to the degree I can figure, I'm willing to pursue any other avenues you can suggest including transferring logic to ETL, reworking MDX along different lines, cache warming, specific aggregations, etc.

Without further ado..

SCOPE ( [Customer].[Account Code].[All], [Measures].[CEMI-2] ) ;This = Count (
{
  
Filter (
    
NonEmpty (
      {
        
Descendants( [Customer].[Account Code].[All],, Leaves) - [Customer].[Account Code].[Unknown]
      },
      Measures.[Outage Count]
    ),
    ( [Outage].[Interruption Flag], [Measures].[Customer Outage Count] ) > 2
  )
} ) ;
format_string (This ) = '#,##0;(#,##0)' ;END SCOPE ;

The Customer.[Account Code] attribute is the one that is likely to have 700k members.  It is the key of the customer dimension.  The NONEMPTY() function seemed to help a great deal, but I'm not sure if that will be the case once I get my full production data because a lot of customers will have at least one outage.   I know the filter function is my big hog here, is there a better way?

I don't see how transferring logic to the ETL can work in this case, given the nature of the calculation.  I would have to create a measure group restricted to just one or maybe two dimensions and have everything hardcoded..

I haven't done aggregations on my cube yet, but I also don't have the full load of data yet, so I figure the situation will get worse not better.

Thanks so much for your assistance, I really enjoy a good MDX problem and this looks to be a fun one.

-Ken


Viewing all articles
Browse latest Browse all 14337

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>