SSAS度量值组估计大小估计行

Mik*_*MVP 8 sql-server ssas visual-studio sql-server-2016 ssas-2016

我想了解更多关于SSDS的“度量值组”的属性面板的两个属性:EstimatedRows和EstimatedSize。关于这两个方面似乎很少有文档。

我确实发现我可以运行“聚合设计向导”,它不仅会计算行数,而且还会自动填充每个度量值组中的EstimatedRows属性。所以问题1:SSAS如何使用此属性,并且在任何地方都有记录?

在我的测试多维数据集中,度量值组的EstimatedSize属性是只读的(显示为灰色)。我发现的少量文档暗示我可以/应该设置此属性。问题2,为什么这是只读的,并且有任何使用文档?

(我正在使用SQL Server 2016)

Had*_*adi 5

我同意您的观点,这些属性缺少文档,但我将尝试提供一些有关它们的信息:

SSAS如何使用此属性,并且在任何地方都有记录?

参考Microsoft发布的白皮书《SQL Server Analysis 2005性能指南》

聚合设计算法确定了聚合候选后,便会对每个聚合进行成本/收益分析。为了对聚集成本进行智能评估,设计算法对每个聚集候选者分析有关多维数据集的统计信息。此元数据的示例包括成员计数和事实表记录计数。确保元数据是最新的可以提高聚合设计的效率。您可以在每个度量值组的EstimatedRows属性中定义事实表源记录计数,并且可以在每个属性的EstimatedCount属性中定义属性成员计数。

为什么使用此只读文件,并且有任何使用文档?

我没有为此找到官方文档,但是在搜索该主题时,我发现了以下答案

SSAS使用(每个分区的估计行数)来确定聚合设计所需的存储空间。

这意味着,EstimatedSize是基于EstimatedRows属性计算的,可以解释为什么EstimatedSize是只读的。

另一方面,以下文档提到MeasureGroup.EstimatedSize属性用于:

获取或设置MeasureGroup的估计大小

此外,正如您提到的,此属性在Visual Studio中不适用。

基于此,我们可以说此属性不是仅在Microsoft.AnalysisServices.dll程序集中读取的,但在Visual Studio中未启用,因为它是基于该EstimatedRows属性计算的。使用AMO程序集或以编程方式构建SSAS项目时,您可以设置其值。