0
SELECT NON EMPTY {
    [Measures].[Production_Volume]
} ON COLUMNS,
NON EMPTY { (
    [Make].[Make ID].[Make ID].ALLMEMBERS
    * [Model].[Model Hierarchy].[MDL].ALLMEMBERS
    * [Customer].[Customer ID].[Customer ID].ALLMEMBERS
) } ON ROWS
FROM [Model_Cube]

此查询需要 10 分钟

[Measures].[Production_Volume] 是多维数据集中的计算成员,如果我将此成员的定义直接放在查询中,则花费的时间要少得多。

WITH MEMBER [Measures].[Production_Volume] AS 
([Measures].[Model Count],
               ([Status].[Status Type].&[T]
                ,[Mode].[Mode Type].&[A])
            ) 
    + Sum(
               ([HYBRID_MODELS]
                ,[Status].[Status Type].&[C]
                ,[Mode].[Mode Type].&[A])
            ,[Measures].[Model Count]
            )
SELECT NON EMPTY {
    [Measures].[Production_Volume]
} ON COLUMNS,
NON EMPTY { (
    [Make].[Make ID].[Make ID].ALLMEMBERS
    * [Model].[Model Hierarchy].[MDL].ALLMEMBERS
    * [Customer].[Customer ID].[Customer ID].ALLMEMBERS
) } ON ROWS
FROM [Model_Cube]

此查询需要 4 秒

无法理解两者之间的区别,我运行分析器但找不到任何区别,除了第一个查询显示飞行记录器快照事件第二个查询没有。

4

1 回答 1

0

问题是我如何创建命名集“[HYBRID_MODELS]”。我把它们从这个DYNAMIC改成STATIC这个有帮助。我做的另一个改变是-{}EXCEPT()函数替换。这两项更改都将查询时间从 30 分钟缩短到 1 分钟!

希望这可以帮助有需要的人:)

于 2022-02-28T21:01:36.240 回答