我想知道是否有一种简单的方法来测试哪种更有效:
EXISTS
在NONEMPTY
EXISTS
内NONEMPTY
一些简单的例子如下。两者都在1秒内运行,那我该如何分析哪一个最好?
在EXISTS
之外 NONEMPTY
SELECT
{}
ON 0,
EXISTS(
NONEMPTY(
[Customer].[Customer].[Customer].MEMBERS
, {([Date].[Calendar].[Date].&[20060701], [Measures].[Internet Sales Amount])}
),
[Customer].[Customer Geography].[Country].&[Germany]
)
ON 1
FROM [Adventure Works]
EXISTS
内的 NONEMPTY
SELECT
{}
ON 0,
NONEMPTY(
EXISTS(
[Customer].[Customer].[Customer].MEMBERS
, [Customer].[Customer Geography].[Country].&[Germany]
),
{([Date].[Calendar].[Date].&[20060701], [Measures].[Internet Sales Amount])}
)
ON 1
FROM [Adventure Works]
答案 0 :(得分:1)
对于这样的测试,MDX Studio是一个有用的工具。这是由Analysis Services引擎的一个核心开发人员Mosha Pasumansky开发的。除了Mosha的一些博客文章之外,没有详细的文档,而且几年前曾经有一个论坛可能已经消失,因为Mosha离开了Analysis Services。
要检查查询的效果,请在查询标签上输入,然后点击"个人资料"按钮。这将清除Analysis Services缓存,并执行多维数据集的计算脚本,然后执行两次查询。第一次,查询在冷缓存上运行,第二次在暖缓存上运行,因为刚刚执行完全相同的查询。