Ssas 为什么要使用进程数据与进程完整来处理分区

Ssas 为什么要使用进程数据与进程完整来处理分区,ssas,mdx,Ssas,Mdx,如上所述:处理数据只处理数据,而不构建聚合或索引。如果分区中有数据,则在使用源数据重新填充分区之前,将删除该数据。另一方面,对于processfull,Analysis Services还将删除分区中的所有数据,然后处理分区。因此,如果将连接到分区的属性层次结构设置为AttributeHierarchyOptimizedState=true,Analysis Services将为属性层次结构构建索引以提高查询性能。我可以通过对Adventure Works数据库运行以下查询来确认此行为: SEL

如上所述:处理数据只处理数据,而不构建聚合或索引。如果分区中有数据,则在使用源数据重新填充分区之前,将删除该数据。另一方面,对于processfull,Analysis Services还将删除分区中的所有数据,然后处理分区。因此,如果将连接到分区的属性层次结构设置为
AttributeHierarchyOptimizedState=true
,Analysis 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') 
当I处理数据时属性\所有属性的索引列都设置为false。当我执行处理时,大多数属性的“完整”属性\u索引列设置为true

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

简而言之——减少多维数据集停机时间和多维数据集准备时间。正如您所说,代价是在ProcessData和ProcessIndex之间的时间段内查询性能下降。
处理通常使多维数据集脱机,至少在提交更改时是如此,这可能需要相当长的时间。为了减少由于处理而导致的多维数据集脱机时间,特别是在大型多维数据集上,使用处理日期选项处理具有更新数据的多维数据集分区(部分)。完成此处理后,多维数据集中的新数据可用于查询,但性能会受到影响。然后启动受影响分区上的进程索引,该进程将在对象上构建所有索引和聚合。
根据我的经验,它只在大型项目中使用并有意义。另一个发现-在多维数据集上运行processdefault会构建缺失的索引和聚合,而不指定确切的度量值组等