【发布时间】:2015-08-14 14:24:17
【问题描述】:
我在蒙德里安有一个维度,具有以下级别:
-维度 - 以分钟为单位的时间
--等级-小时
--级别-分钟
如果我使用单个级别进行查询,则需要几秒钟来处理。但是,如果我将这两个级别都添加到查询中,查询将需要半小时。
更重要的是,如果我将维度复制为 2,因此每个维度都有一个级别,那么查询也需要几秒钟。
单级查询:
WITH
SET [~COLUMNS] AS
{[Event].[Event].[Event Name].Members}
SET [~ROWS] AS
{[Time by Minute].[Time by Minute].[Minute].Members}
SELECT
NON EMPTY [~COLUMNS] ON COLUMNS,
NON EMPTY [~ROWS] ON ROWS
FROM [spdoc views]
2 级查询:
WITH
SET [~COLUMNS] AS
{[Event].[Event].[Event Name].Members}
SET [~ROWS] AS
Hierarchize({{[Time by Minute].[Time by Minute].[Hour].Members}, {[Time by Minute].[Time by Minute].[Minute].Members}})
SELECT
NON EMPTY [~COLUMNS] ON COLUMNS,
NON EMPTY [~ROWS] ON ROWS
FROM [spdoc views]
任何想法为什么会发生这种情况?
【问题讨论】:
-
我猜第二个查询比第一个查询要稀疏得多。因此,当您使用
NON EMPTY子句时,引擎必须做更多的工作来删除空单元格。当您从两者中删除NON EMPTY子句时,查询如何相互对抗?