多维数据集处理时间过长或失败

Zer*_*ity 7 ssas sql-server-2008-r2 cube

我有一个 SSAS Cube,有 35 个维度和 10 个度量。

  • 一些尺寸的尺寸相当大。
  • 在几乎所有维度中,数据都会被更新和插入。
  • 度量具有大量数据。

当我从SSMS运行(通过右键单击 SSAS 数据库)在数据库上“进程已满”时,大约需要 1 小时 30 分钟。

当我通过 XMLA 脚本从 SQL 代理作业处理多维数据集(进程已满)时,大约需要 1 小时 20 分钟。

当我通过 SSMS 分别处理维度和度量(过程完整)时,需要 1 小时 50 分钟。

但是,当我从 SSIS(通过 XMLA 的 DML 任务)处理维度和度量时,它需要 5 个多小时。[内存消耗几乎达到 100%]

所以我的问题是:

  1. 来自 SSIS 的处理维度和度量会花费那么多吗?
  2. 我应该选择什么样的处理来进行快速立方体处理。我正在做完整的过程。
  3. 当我从前两个选项处理多维数据集时,大部分时间多维数据集都会因为“未找到属性键”而失败,但是当我分别处理维度和测量时,它运行良好。不处理完整的多维数据集确保正确处理维度和度量?

小智 1

哦,我亲爱的..

首先。对于您的情况,我建议您选择“进程默认”选项。如果您始终使用 Process Full,那么您将删除所有数据和对象并重新创建所有内容。你不需要它们。通常,建议选项是使用 ProcessData,然后使用 ProcessIndex。

我没有从 SSIS 内部处理多维数据集,但 SSIS 可能正在检查某些内容并锁定数据库上的某些内容。最好的选择是使用 XMLA。如果您想从 SSIS 中处理您的多维数据集,您可以编写一个脚本任务来执行处理 - 您可以在网上找到一个脚本。

您还需要检查是否有干净的数据。如果您拥有所有密钥等,请在您的项目和数据中检查两次。如果您单独处理维度,则数据不会在度量和维度之间进行比较。我非常确定您的事实表中有一些键在您的维度中没有对应的值。用这个下订单。如果维度中没有值并且它是正确的(源表中不存在),您可以使用键“-1”向每个维度添加一个额外值以及“N/A”(不适用)等所有值和将未找到的值指向维度中的此记录。

最后。如果您有一个大型 SSAS 数据库,请考虑分区。

有很多话要说。如果您有一些具体问题,请随时提问。