sql-server - SSAS 何时在它发送的查询中使用 ORDER BY 来加载分区?
问题描述
我们的多维数据集可能比它需要的大,大约有 20 个度量值组,其中一些有 20 到 100 个分区 - 但事实就是如此。
我们注意到的是,SSAS 在处理分区时生成的某些查询上添加了 ORDER BY,而不会将其添加到其他查询中。
我们无法找出影响这种行为的因素。分区或度量组上没有明显的设置。我们也无法将其追溯到它查询以处理分区的视图。
知道是什么让 SSAS 决定何时加载“订购的”以及何时加载“交付的任何东西”?
供参考:SQL Server 是 Version 2012 SP 4 Edition 是 Enterprise。多维模型中的 Analysis Services,所有分区都是 MOLAP。我们加载的视图基于“常规”表,没有列存储索引。有些是索引视图,但我们看到针对这些索引视图的有序和非有序选择。
感谢您的任何想法!
解决方案
我虽然这永远不会发生,但我想我发布了一个问题,并且最终可以自己提供答案。嗯……这里是:
在 SSAS 中,最好在自己的度量值组中创建与 DISTINCT COUNT 聚合的度量值。可以在此处和其他几个页面上找到有关此的更多信息。
好吧,这就是答案的全部内容:正是这些度量组及其分区,在加载它们的 sql 上附加了一个“ORDER BY”。排序将使用 DISTINCT COUNTed 的字段作为条件。
这样做的结果可能是在此列上有一个索引,并且如果聚集索引不能用于支持排序。
推荐阅读
- ruby-on-rails - 是否可以将参数传递到模态窗口?需要模态来引用对象
- image - 如何在 Vich Uploader 中提交表单之前显示图像缩略图?
- spring - 模拟原型作用域bean
- shell - 用grep和wc同时过滤和统计结果
- django - Django模型到字段
- windows - 固定的 Windows Git Bash 任务栏图标不尊重 git-bash.exe 快捷方式启动目录
- c# - linq 异步调用以映射到一个对象 2 个具有外键的表
- java - 如何使用opencsv读取没有标题的csv文件?
- php - 当 filter_input 返回不正确的 cookie 值时
- c# - C# DataTable.Rows.Clear() 不清除行