维度的ProcessUpdate触发处理多维数据集中所有度量值组的所有分区

时间:2019-09-24 08:44:50

标签: ssas mdx

我在多维数据集中有“客户”和“客户”维,它们连接到相同的度量值组(多维数据集中大约有15-20个度量值组)。

当我运行XMLA命令来处理这两个维度的更新时,如下所示:

<Batch>
    <Parallel>
        <Process>
            <Object>
                <DatabaseID>My Database</DatabaseID>
                <DimensionID>Dim Customer</DimensionID>
            </Object>
            <Type>ProcessUpdate</Type>
            <WriteBackTableCreation>UseExisting</WriteBackTableCreation>
        </Process>
    </Parallel>
</Batch>

在“帐户”维的情况下,它会在几分钟内完成,因为它不会触发对所有度量值组的所有分区的处理。 但是 在“客户”维度的情况下,它会触发对所有度量值组的所有分区的处理,因此,此维度的过程更新持续的时间更长,而整个多维数据集的完整处理将持续更长的时间。

我不确定在一个维度的情况下,而在另一维度的情况下,维度将触发所有此处理的原因可能是什么?对于两个维度,将“处理受影响的对象”设置为“不处理”。我应该看哪里,要检查什么,是否可以以某种方式阻止这种重新处理?

谢谢!

1 个答案:

答案 0 :(得分:1)

ProcessUpdate的文档中指出

  

强制重新读取数据和更新尺寸属性。 相关分区上的灵活聚合和索引将被删除。

可以导致聚合被丢弃。

具体来说,有一个MSDN blog关于不同的处理选项,其中详细说明了何时可以删除聚合

  

根据维表中更改的性质,ProcessUpdate可能会影响从属分区。如果仅添加新成员,则分区不受影响。但是,如果删除了成员或成员关系发生了变化(例如,客户从Redmond移至Seattle),则分区上的某些聚合数据和位图索引将被删除。

BI领域的关键人物之一克里斯·韦伯(Chris Webb)也对此有blogged,特别是,他有以下说法:

  

清除索引/聚集的操作在Profiler中也显示为“分区处理操作”