Ssas 在数据源视图或数据库中定义关系更好吗?

Ssas 在数据源视图或数据库中定义关系更好吗?,ssas,Ssas,我正在尝试组合两个多维数据集来创建一个多维数据集,在数据源视图中定义了很多关系。现在我想在数据库级别定义关系。我试图从性能的角度来理解这一变化。DSV中的关系对性能没有影响。它们有两个目的: 关于表格结构的文档,以及 帮助投标中的一些向导生成一些代码 后者是e的情况。G对于以下情况:多维数据集向导可以建议哪些表是事实表,因此将作为度量值组的基础,哪些是维度表。此外,多维数据集设计器选项卡“维度使用”中的关系是基于DSV关系生成的,无需手动定义。维度的键属性在维度设计器中自动定义为基于主键列的

我正在尝试组合两个多维数据集来创建一个多维数据集,在数据源视图中定义了很多关系。现在我想在数据库级别定义关系。我试图从性能的角度来理解这一变化。

DSV中的关系对性能没有影响。它们有两个目的:

  • 关于表格结构的文档,以及
  • 帮助投标中的一些向导生成一些代码
后者是e的情况。G对于以下情况:多维数据集向导可以建议哪些表是事实表,因此将作为度量值组的基础,哪些是维度表。此外,多维数据集设计器选项卡“维度使用”中的关系是基于DSV关系生成的,无需手动定义。维度的键属性在维度设计器中自动定义为基于主键列的属性

关系数据库中的关系可能会对写入表的性能产生负面影响,因为每次插入、删除和更新都需要检查它们,这会影响具有这些约束的列

根据数据库系统的不同,它们会隐式地创建一些索引,这可能会提高某些读取操作的性能。但AnalysisServices在处理过程中发布的大多数声明将不会受益

但是,这些关系可能会对开发人员/调试性能产生积极的“性能影响”,因为它们会在数据发生违反约束的更改时给出早期错误消息。另一方面,您必须注意它们,因为它们规定了删除/插入的顺序:在引用表中的记录之前删除引用表中的值,然后以相反的顺序插入