我对SSAS开发相当新,当现有团队给我一个现有的SSAS项目时,他们提到每个查询都有SELECT TOP *n*
,然后他们手动进入XML文件并在准备好迁移到生产时注释掉(并确保选择其他人没有使用的 n )。
这样做是因为在查询中没有TOP n 的情况下将数据导入Visual Studio需要很长时间。
这是最佳实践,还是有更好的方法来设置开发环境,以便在部署之前不必注释掉代码?
答案 0 :(得分:0)
我假设您正在讨论Analysis Services Tabular,它将设计时的数据加载到您的工作空间数据库中的内存中。它通常是本地Analysis Services表格实例。
您可以考虑创建SQL视图层并在视图之上构建Analysis Services模型。此处提及此建议的原因如下: http://www.jamesserra.com/archive/2013/03/benefits-of-using-views-in-a-bi-solution/
但SELECT TOP X可能还不够。例如,如果SELECT TOP 100 * FROM FactSales仅返回西南地区商店的事实行,但SELECT TOP 100 * FROM DimStore仅返回东北部的商店,那么开发模型和计算将具有挑战性因为一切都将滚动到空白的商店。因此,请考虑在视图中添加一些更智能的过滤器逻辑。
答案 1 :(得分:0)
听起来您想要更改SSRS报告中的MDX语句。如果是这种情况,我不建议这样做。您还需要查看报告在开发环境中的性能。当然,正如所建议的那样,您可以减小数据的大小,但这有很大的缺点,因为您无法再预测生产的真实性能。
顺便说一下,前n个查询通常非常昂贵,因为必须为整个集合计算结果然后被丢弃。因此,在MDX中使用“top n”来提高性能的优势非常有限。