温馨提示:本文翻译自stackoverflow.com,查看原文请点击:ssas - Why would you want to use Process Data vs Process Full for processing a partition
mdx ssas

ssas - 为什么要使用Process Data vs Process Full来处理分区

发布于 2020-05-11 16:21:22

如前所述这里过程数据只会无需建立聚合或索引处理数据。如果分区中有数据,则将其删除,然后再用源数据重新填充分区。另一方面,对于Process Full Analysis Services,还将删除该分区中的所有数据,然后处理该分区。因此,如果将连接到该分区的属性层次结构设置为AttributeHierarchyOptimizedState = trueAnalysis Services,则将为该属性层次结构建立索引以提高查询性能。通过对Adventure Works数据库运行以下查询,我能够确认此行为:

SELECT
DIMENSION_NAME, ATTRIBUTE_NAME, ATTRIBUTE_INDEXED,
ATTRIBUTE_COUNT_MIN, ATTRIBUTE_COUNT_MAX
FROM SystemRestrictSchema($system.discover_partition_dimension_stat
        ,DATABASE_NAME = 'AdventureWorksDW2014Multidimensional-EE'
        ,CUBE_NAME = 'Adventure Works'
        ,MEASURE_GROUP_NAME = 'Internet Sales'
        ,PARTITION_NAME = 'Internet_Sales_2013') 

当我处理数据时,所有属性的ATTRIBUTE_INDEXED列均设置为false。当我处理所有属性时,完整的 ATTRIBUTE_INDEXED列设置为true。

所以我想知道为什么有人只希望处理数据,从而牺牲查询性能来获得什么?谢谢。

查看更多

提问者
vldmrrdjcc
被浏览
19
Ferdipux 2020-03-02 15:23

简而言之-减少多维数据集停机时间和多维数据集准备时间。如您所说,以成本为代价,查询性能在ProcessDataProcessIndex之间的时间段内下降
通常,至少在提交更改时,处理才能使多维数据集脱机,这可能会花费大量时间。为了减少由于处理而导致的多维数据集脱机时间,尤其是在大多维数据集上,使用“ 处理日期”选项处理具有更新数据的多维数据集的分区(部分)完成此处理后,多维数据集中的新数据可用于查询,但会降低性能。之后,将启动受影响分区上的进程索引,这将在对象上构建所有索引和聚合。
从我的经验来看,它仅在大型项目上才有意义。另一个发现- 在多维数据集上运行Process Default会构建缺少的索引和聚合,而无需指定确切的度量值组等。