我在多维数据集中有“客户”和“客户”维,它们连接到相同的度量值组(多维数据集中大约有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>
在“帐户”维的情况下,它会在几分钟内完成,因为它不会触发对所有度量值组的所有分区的处理。 但是 在“客户”维度的情况下,它会触发对所有度量值组的所有分区的处理,因此,此维度的过程更新持续的时间更长,而整个多维数据集的完整处理将持续更长的时间。
我不确定在一个维度的情况下,而在另一维度的情况下,维度将触发所有此处理的原因可能是什么?对于两个维度,将“处理受影响的对象”设置为“不处理”。我应该看哪里,要检查什么,是否可以以某种方式阻止这种重新处理?
谢谢!
答案 0 :(得分:1)
ProcessUpdate的文档中指出
强制重新读取数据和更新尺寸属性。 相关分区上的灵活聚合和索引将被删除。
可以导致聚合被丢弃。
具体来说,有一个MSDN blog关于不同的处理选项,其中详细说明了何时可以删除聚合
根据维表中更改的性质,ProcessUpdate可能会影响从属分区。如果仅添加新成员,则分区不受影响。但是,如果删除了成员或成员关系发生了变化(例如,客户从Redmond移至Seattle),则分区上的某些聚合数据和位图索引将被删除。
BI领域的关键人物之一克里斯·韦伯(Chris Webb)也对此有blogged,特别是,他有以下说法:
清除索引/聚集的操作在Profiler中也显示为“分区处理操作”