首页 > 解决方案 > SSAS 何时在它发送的查询中使用 ORDER BY 来加载分区?

问题描述

我们的多维数据集可能比它需要的大,大约有 20 个度量值组,其中一些有 20 到 100 个分区 - 但事实就是如此。

我们注意到的是,SSAS 在处理分区时生成的某些查询上添加了 ORDER BY,而不会将其添加到其他查询中。

我们无法找出影响这种行为的因素。分区或度量组上没有明显的设置。我们也无法将其追溯到它查询以处理分区的视图。

知道是什么让 SSAS 决定何时加载“订购的”以及何时加载“交付的任何东西”?

供参考:SQL Server 是 Version 2012 SP 4 Edition 是 Enterprise。多维模型中的 Analysis Services,所有分区都是 MOLAP。我们加载的视图基于“常规”表,没有列存储索引。有些是索引视图,但我们看到针对这些索引视图的有序和非有序选择。

感谢您的任何想法!

标签: sql-serverssas

解决方案


我虽然这永远不会发生,但我想我发布了一个问题,并且最终可以自己提供答案。嗯……这里是:

在 SSAS 中,最好在自己的度量值组中创建与 DISTINCT COUNT 聚合的度量值。可以在此处和其他几个页面上找到有关此的更多信息。

好吧,这就是答案的全部内容:正是这些度量组及其分区,在加载它们的 sql 上附加了一个“ORDER BY”。排序将使用 DISTINCT COUNTed 的字段作为条件。

这样做的结果可能是在此列上有一个索引,并且如果聚集索引不能用于支持排序。


推荐阅读