sql - 用表或 View 构建立方体是否更有效?

标签 sql sql-server ssas olap

当我注意到我被要求开发的一个系统有一个完全基于 View 的立方体后,我开始思考这个问题。我注意到这些 View 都加入到其他表/ View 中,并且这些 View 也有逻辑编码(if、case 语句以及转换语句、连接等)。这一切对我来说似乎都很可怕,但这让我想知道是否应该将数据源建立在 View 之外的立方体上?

对我来说,表格更有意义。它可以防止数据源中昂贵的连接,并且也不容易出现由于 View 执行的转换而可能发生的错误。然而,我仍然看到很多人使用 View 作为多维数据集的数据源。这里有最佳实践吗?我是否可能错过了 View 用作数据源时所提供的一些优势?

最佳答案

View 是将 SSAS 与表隔离的重要层 - 与其说是与列更改隔离,不如说是与不需要的行隔离。如果没有 View ,SSAS 将始终处理表中的每一行。一个典型的例子是具有 SCD 类型 2 行的维度表,其中多维数据集仅需要“当前”行。其他常见情况是限制测试数据或馈送 SSAS 分区。

这些 View 最好保持简单,即没有复杂的连接、CTE、计算列等。这些要求最好在 ETL 层中得到解决 - 在 SSAS 层中测试/调试/支持它们是很痛苦的。

关于sql - 用表或 View 构建立方体是否更有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13169055/

相关文章:

mysql 触发器 for 循环

sql - Azure 中具有聚集索引的表出现聚集索引错误

sql-server - MS SQL Server Docker数据位置

sql-server - SSRS 指标大小

ssas - 如何在多维数据集中多次过滤测量

sql - SSAS 表格中的不同流程模式如何工作?

php - 如何在 MySQL 中显示导致计算总数的所有单独字段?

SQL 代理作业,如何记录

sql - 在 SQL SERVER 2008 中组合静态列与动态列

java - 来自 Java 代码的 Microsoft SSAS OLAP 连接