【问题标题】:Long process of OLAP dimensionsOLAP维度的漫长过程
【发布时间】:2021-06-25 13:24:23
【问题描述】:

我正在寻找一种方法来优化我的 OLAP Cube 中的维度。至于现在有 3500 万条记录,10 个维度主要有一个 key(on recid)和 1-3 个属性,一个大维度有 20 个属性。我确实对我的数据进行了分区并尽可能优化了我的查询(添加了索引,将转换从多维数据集传递到 dtsx 包)。但尺寸处理过程仍然超过 7 小时!

有没有办法让它变得更好?

拥有具有 2 列键和 1-2 个属性且没有层次结构的多个维度实际上是一种痛苦还是一种好的做法?

Edit2:是否可以对维度进行分区?

【问题讨论】:

    标签: ssis ssas olap


    【解决方案1】:

    优化的第一步是看维度处理的哪一部分需要多少时间。当您处理维度 e。 G。在 Visual Studio 或 Management Studio 中,您会在用户界面中看到很多事件。这可以帮助您了解处理的哪个部分需要多少时间。这并不容易看到,因为许多处理步骤并行运行。

    如何加快维度处理的一些想法:

    • 您已经查看了关系源端,因此我认为这里没有太多可获取的地方。不过,查看上述详细信息以查看实际执行的 SQL 语句并查看您的优化是否针对这些可能是有意义的。
    • 与度量组处理相比,维度处理极大地受益于足够的 RAM,以便在维度处理期间将所有维度数据保存在内存中。这意味着您应该在具有足够 RAM 的机器上运行处理,并确保 RAM 可用于 SSAS,而不是大部分都占用 e。 G。通过关系引擎。
    • 一个接一个地处理维度而不是一起处理可能是有意义的 - 特别是如果您的 RAM 很紧。这可以防止 SSAS 尝试并行运行太多维度处理作业,最终导致所有这些作业都用完 RAM,从而使每个维度的可用 RAM 变少。
    • 定义维度属性之间的关系可能有助于加快处理速度。
    • 一旦您可以将所有维度数据保存在 RAM 中,磁盘的速度不会对处理速度有很大影响,因为 SSAS 将在 RAM 中进行所有处理,并且只将数据写入计算后的磁盘。
    • ,您不能对维度进行分区。

    【讨论】:

    • 我的内存很紧。 SQL 大约需要 100GB 和 SASS 50GB 并且有大约 3-5GB 的免费空间。我按顺序处理顺序运行进程更新中的维度。
    • @Tweene 您是否尝试过维度的完整过程是否更快?缺点是它会使所有链接的度量值组无效,因此您还需要完全处理这些。但总的来说,这可能仍然更快。另一种方法可能是看看是否将关系数据库内存减少到假设为 50GB 并为 SSAS 多提供 50GB 是否会有所帮助。最后,这是一个尝试和试验的问题。
    • 实际上我从顺序流程改为并行流程,从 6 小时多到 3 小时,但一周只有 2 次。不知道为什么会这样……
    最近更新 更多