5

我在 SQL Server 中设置了一组视图,它们准确输出我想包含在 SQL Server Analysis Services 多维数据集中的结果,包括计算多个维度(例如使用 DATEDIFF 的年龄、使用 DATENAME 的业务季度等) .)。我想知道的是使用这些视图作为多维数据集的数据源是否有意义,或者我是否应该使用基础表来重现 SSAS 中的逻辑。走任何一条路线都有什么影响?

我的担忧是:

  • 数据集非常庞大,但我们需要快速访问结果,因此我希望将视图中完成的尽可能多的计算保留在 SSAS 数据仓库中
  • 同样,因为数据集很大,我希望任何立方体的重新计算速度尽可能快
4

2 回答 2

9

许多专家实际上建议在 SSAS 的数据源视图中使用视图。John Welch(Pragmatic Works、Microsoft MVP、Analysis Services Maestro)在今年的 SQL Rally Dallas 上谈到了他更喜欢在 DSV 中使用视图的方式。原因是它在多维数据集和物理表之间创建了一个层。

在多维数据集处理期间,计算视图中的列将花费一些额外的时间和资源。如果处理时间没问题,则将计算留在视图中。如果这是一个问题,您始终可以将持久计算列直接添加到事实表中,以便在事实表的插入/更新期间完成计算。这样做的缺点是您必须将列物理存储在事实表中。优点是不必在每次处理多维数据集时都计算它们。这些是您需要权衡的权衡,以决定走哪条路。

只需确保将源查询调整为尽可能高效即可。视图适用于 DSV。

于 2012-10-24T16:49:42.743 回答
4

观点,永远!在 DSV 上使用表的唯一优点是它会自动映射您的键 :) 这可以为您节省 5 分钟的开发时间哈哈。

另外,“使用基础表重现 SSAS 中的逻辑”是指在 SSAS DSV 上创建计算列吗?这也是一个选项,但我宁愿将计算添加到视图中,因为如果我必须升级它们,重新部署视图比重新部署完整的多维数据集更容易(并且更不容易失败)。

于 2012-10-25T10:21:38.727 回答