交叉连接层次结构的执行顺序

Execution order of crossjoined hierarchies

如果我通过以下交叉连接创建一组元组,首先连接哪个层次结构?

hierA * hierB * hierC

如果我知道 A 和 B 中的非空成员数明显少于 C 中的成员数,那么这会影响顺序吗?

这取决于所使用的执行系统,即编译器如何优化轴上的交叉连接。

无论如何,只有先使用 subselect 减小多维数据集大小,您才会得到真正的提升 - 它会防止交叉连接非匹配点:

select
 { [Measures].[X] } on 0,
 { [DimA].[A] * [DimB].[B] } on 1
From ( 
             select { [DimB].[B].members}   on 0 
             from CubeA
           )