Even with small fact tables( ~20 million rows) MDX is extremely slow when there are high cardinality columns in the body of the report.
e.g. The DAX query is subsecond.
Evaluate SUMMARIZE ( CALCULATETABLE('Posted Entry', 'Cost Centre'[COST_CENTRE_ID]="981224" , 'Vendor'[VENDOR_NU]="100001" ,'Posted Entry'[DR_CR]="S") ,'Posted Entry'[DOCUMENT_ID] ,'Posted Entry'[DOCUMENT_LINE_DS] ,'Posted Entry'[TAX_CODE_ID] ,"Posted Amount",[GL Amount] ,"Document Count",[Document Count] ,"Record Count",[Row Count] ,"Document Line Count",[Document Line Count] ,"Vendor Count",[Vendor Count] ) order by 'Posted Entry'[GL Amount] desc
The MDX equivalent takes 1 minute 13 seconds.
Select { [Measures].[Document Count],[Measures].[Document Line Count],[Measures].[GL Amount], [Measures].[Row Count],[Measures].[Vendor Count]} On Columns , NON EMPTY [Posted Entry].[DOCUMENT_ID_LINE].[DOCUMENT_ID_LINE].AllMembers * [Posted Entry].[DOCUMENT_LINE_DS].[DOCUMENT_LINE_DS].AllMembers * [Posted Entry].[TAX_CODE_ID].[TAX_CODE_ID].AllMembers On Rows From [Scrambled Posted Entry] WHERE ( [Cost Centre].[COST_CENTRE_ID].&[981224] ,[Vendor].[VENDOR_NU].&[100001] ,{[Posted Entry].[DR_CR].&[S]})
I've tried this under 2012 SP1 and it is still a problem. The slow MDX happens when there is a high cardinality column in the rows and selection is done on joined tables. DAX performs well; MDX doesn't. Using client generated MDX or bigger fact tables makes the situation worse.
Is there a go fast switch for MDX in Tabular models?