SSAS - 我应该使用视图还是基础表?

时间:2012-10-24 13:09:53

标签: sql-server sql-server-2008-r2 ssas

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

我担心的是:

  • 数据集很大,但是我们需要快速访问结果,所以我希望在SSAS数据仓库中保留的视图中进行的计算尽可能多
  • 同样,因为数据集很大,我希望尽可能快地重新计算任何立方体

2 个答案:

答案 0 :(得分:9)

许多专家实际上建议在SSAS中使用数据源视图中的视图。 John Welch(Pragmatic Works,微软MVP,Analysis Services Maestro)谈到了他如何更喜欢今年在SQL Rally达拉斯使用DSV中的观点。原因是它在多维数据集和物理表之间创建了一个层。

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

确保调整源查询尽可能高效。观点适用于DSV。

答案 1 :(得分:4)

观点,永远!在DSV上使用表格的唯一好处就是它会自动映射你的密钥:)这可以节省你5分钟的开发时间哈哈。

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