Ssas 在使用秩函数之前创建自定义集是否更快
这运行正常:Ssas 在使用秩函数之前创建自定义集是否更快,ssas,mdx,Ssas,Mdx,这运行正常: WITH MEMBER [Measures].[Players_Rank] AS RANK( [Player].[Player].CurrentMember, NONEMPTY( [Player].[Player].members, [Measures].[Score]), [Measures].[Score]
WITH
MEMBER [Measures].[Players_Rank] AS
RANK(
[Player].[Player].CurrentMember,
NONEMPTY(
[Player].[Player].members,
[Measures].[Score]),
[Measures].[Score]
)
但这要快得多:
WITH
SET X AS
NONEMPTY(
[Player].[Player].members,
[Measures].[Score])
MEMBER [Measures].[Players_Rank] AS
RANK(
[Player].[Player].CurrentMember,
X,
[Measures].[Score]
)
通过分离出非空
集,并在点击秩
函数之前进行计算,我们获得了性能增益-为什么
参考MSDN上秩函数的参考,此处使用了类似的方法:
这里有一位AnalysisServices开发者的详细解释:
基本上,第一个查询会为需要显示排名的每个单元格重新构建集合,而第二个解决方案只构建一次集合,并为使用排名成员的所有单元格缓存该集合。+1非常有用的链接。我想我会找一本便宜的@whytheq。请注意,这本书似乎是2000年出版的,从那以后有很多变化。事实上,2005年差不多是整个软件的翻版……但他的博客有多老了?(可惜他搬到了Bing…)。试图对你的搜索脚本做一个小的修改,但不起作用-想知道为什么?(me未正确使用OR运算符-)