【发布时间】:2023-03-04 19:58:01
【问题描述】:
我仍在掌握 MDX,我正在寻求帮助。这是我的 MDX 查询:
CREATE MEMBER CURRENTCUBE.[Measures].[Fake]
AS
IIF(
(
(
[Sales Data].[Ship-to No].CurrentMember
,[Sales Data].[Price Type].&[Core]
,[Measures].[Sales - Local Currency]
)
/ (
[Sales Data].[Ship-to No].CurrentMember,
[Sales Data].[Price Type].[(All)].[ALL],
[Measures].[Sales - Local Currency]
)
) > 0.9
,1
,NULL
),
VISIBLE = 1;
CREATE MEMBER CURRENTCUBE.[Measures].[Test Calc]
AS
SUM(
Descendants(
[Sales Data].[Ship-to No].CurrentMember
,[Sales Data].[Ship-to No].[Ship-to No]
),
[Measures].[Fake]
),
VISIBLE = 1;
SalesData 是事实表,基本计算是统计销售额超过“核心”价格类型 90% 的客户数量。
查询目前大约需要 5 秒才能完成,但我认为如果我根据 http://sqlblog.com/blogs/mosha/archive/2008/07/29/product-volatility-optimizing-mdx-with-mdx-studio.aspx 不使用 CurrentMember 会更快
但是我不知道从哪里开始改变这个,谁能帮我提高效率?
【问题讨论】:
-
聚合设计?行数?莫拉普?足够的硬件?
-
@MitchWheat,聚合是使用向导设计的(我允许先建立使用)事实表有大约 20M 行,它正在使用 MOLAP。抱歉应该把这个放在帖子上。硬件 - 目前仅在开发人员 SQL 服务器上等本地计算机上。
标签: mdx