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

时间:2019-05-11 16:24:38

标签: sql-server ssas sql-server-2016 ssas-2016

SSDS中“度量值组”的属性面板具有两个我想详细了解的属性:EstimatedRows和EstimatedSize。这两个文件似乎都很少。

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

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

(我正在使用SQL Server 2016)

2 个答案:

答案 0 :(得分:4)

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

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

请参阅SQL Server Analysis 2005 Performance Guide,这是Microsoft发布的白皮书:

  

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

为什么这是只读的,并且有任何使用文档吗?

我没有找到官方文档,但是在搜索此主题时,我发现following answer提到:

  

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

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

另一方面,following documentation提到MeasureGroup.EstimatedSize属性用于:

  

获取或设置MeasureGroup的估计大小

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

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

答案 1 :(得分:2)

“ Microsoft SQL Server 2008 Analysis Services发布”一书中说:

EstimatedSize -定义要加载到分区中的数据量(以字节为单位)。此属性可帮助Analysis Services确定在分区处理期间使用的最佳策略。

EstimatedRows -定义您希望加载到分区中的记录数。与EstimatedSize属性类似,此属性可帮助Analysis Services确定在分区处理期间使用的最佳策略。

EstimatedRows -...如果您知道事实中存在的行数,则可以在选择内部数据结构进行数据存储及其算法时帮助系统做出更好的决策处理。