我尝试组合几个多维数据集来创建一个多维数据集,并且在数据源视图中定义了很多关系。现在考虑在数据库级别定义关系。我试图从性能的角度来理解这种变化。
答案 0 :(得分:5)
DSV中的关系对没有性能产生影响。它们有两个目的:
后者是案例e。 G。对于以下情况:多维数据集向导可以建议哪些表是事实表,因此将成为度量值组的基础,哪些是维度表。此外,多维数据集设计器选项卡中的关系"维度用法"是基于DSV关系生成的,无需您手动定义它们。维度的关键属性在维度设计器中自动定义为基于主键列的属性。
关系数据库中的关系会对写入表有负面的性能影响,因为每次插入,删除和更新都需要检查它们,这会影响具有这些约束的列。
根据数据库系统的不同,它们会隐式地创建一些索引,这可能会在某些读取操作中提供性能改进。但Analysis Services在处理期间发布的大多数语句都不会受益。
但是,这种关系可能会产生积极的“性能影响”。关于开发人员/调试性能,因为他们在更改数据时会准确地提供早期错误消息,从而违反约束条件。另一方面,您必须处理它们,因为它们指示删除/插入的顺序:在引用表中的记录之前从引用表中删除值,以相反的顺序插入。